在本文中,我们将给您介绍关于JS文件不能在angular中工作,但可以在普通的HTML、CSS+JS中工作的详细内容,并且为您解答为什么js文件不起作用的相关问题,此外,我们还将为您提供关于Angul
在本文中,我们将给您介绍关于JS 文件不能在 angular 中工作,但可以在普通的 HTML、CSS+JS 中工作的详细内容,并且为您解答为什么js文件不起作用的相关问题,此外,我们还将为您提供关于Angular 12 升级问题与包 @angular-devkit/builder-angular 中的 css-what 版本相关、Angular 12.0.5 HMR 不工作,不重新加载模块,不重新加载页面实时重新加载,Angular 11.0.6 重新加载整个页面 调查 Angular 构建系统使用的版本配置 webpack使用 Angular 12.0.5 / next.6 时 - 没有帮助、Angular 2+ (RTL) 如何将 HTML 标记添加到使用 Angular FormControl 构建的 HTML 输入值、angular j j angular j angular angular service service service j的知识。
本文目录一览:- JS 文件不能在 angular 中工作,但可以在普通的 HTML、CSS+JS 中工作(为什么js文件不起作用)
- Angular 12 升级问题与包 @angular-devkit/builder-angular 中的 css-what 版本相关
- Angular 12.0.5 HMR 不工作,不重新加载模块,不重新加载页面实时重新加载,Angular 11.0.6 重新加载整个页面 调查 Angular 构建系统使用的版本配置 webpack使用 Angular 12.0.5 / next.6 时 - 没有帮助
- Angular 2+ (RTL) 如何将 HTML 标记添加到使用 Angular FormControl 构建的 HTML 输入值
- angular j j angular j angular angular service service service j
JS 文件不能在 angular 中工作,但可以在普通的 HTML、CSS+JS 中工作(为什么js文件不起作用)
如何解决JS 文件不能在 angular 中工作,但可以在普通的 HTML、CSS+JS 中工作
基本上我正在尝试创建一个这样的下拉列表。但问题是:单击 angular 中的下拉按钮没有任何反应,而它在不使用图像中的 angular 的情况下工作正常。 尽管我尝试仅使用向网页发出警报的 alert("Hello World") 以角度运行 JS 文件。这意味着 JS 文件已正确链接,但此代码以某种方式无法在 angular 中工作。请帮我解决这个问题!
var dropdown = document.getElementsByClassName("dropdown-btn");
var i;
for (i = 0; i < dropdown.length; i++) {
dropdown[i].addEventListener("click",function () {
var dropdownContent = this.nextElementSibling;
if (dropdownContent.style.display === "block") {
dropdownContent.style.display = "none";
} else {
dropdownContent.style.display = "block";
}
});
}
.tabs{
position: absolute;
top: 280px;
width: 100%;
}
.dropdown-btn{
text-decoration: none;
border: none;
background: none;
display: block;
padding-left: 53px;
font-family: Work Sans;
font-style: normal;
font-weight: bold;
font-size: 24px;
line-height: 28px;
letter-spacing: -0.02em;
text-transform: uppercase;
color: #F8F7F3;
}
.dropdown-container{
text-decoration: none;
padding-left: 63px;
display: none;
background-color:#20737A;
width: 100%;
margin: auto;
}
.dropdown-container a{
text-decoration: none;
display: block;
padding-bottom: 10px;
font-weight: bold;
font-size: 18px;
}
<div class="sidenav">
<div class="items" id="item-0"><a href="#">The Senior Survey</a></div>
<div class="tabs">
<button class="items dropdown-btn">ACADEMICS</button>
<div class="dropdown-container">
<a href="#" id="comp-1">Department</a>
<a href="#" id="comp-2">CPI</a>
</div>
解决方法
通过 vanilla JS 的 DOM 操作在 Angular 中不起作用。
你需要用 Angular 的方式来做。
在 HTML 中,您添加一个 click
方法来切换下拉列表。并在下拉容器中使用相同的变量来显示/隐藏使用 *ngIf
。
<div class="sidenav">
<div class="items" id="item-0"><a href="#">The Senior Survey</a></div>
<div class="tabs">
<button class="items dropdown-btn" (click)="showDropdown=!showDropdown">ACADEMICS</button>
<div class="dropdown-container" *ngIf="showDropdown">
<a href="#" id="comp-1">Department</a>
<a href="#" id="comp-2">CPI</a>
</div>
在您的组件
中添加这个变量showDropdown
@Component({...})
export class YourComponent {
showDropdown:boolean = false;
}
Angular 12 升级问题与包 @angular-devkit/builder-angular 中的 css-what 版本相关
如何解决Angular 12 升级问题与包 @angular-devkit/builder-angular 中的 css-what 版本相关
我正在升级我的 Angular 项目。我已按照此处 https://update.angular.io/ 提到的所有步骤进行操作。在那之后,除了与@angular-devkit/builder-angular 相关的一个高问题之外,我能够解决所有问题。
这是导致构建失败的问题。
高度拒绝服务
封装css-what
已在 >=5.0.1 中修补
依赖@angular-devkit/build-angular [dev]
Path @angular-devkit/build-angular > css-minimizer-webpack-plugin
> cssnano > cssnano-preset-default > postcss-svgo > svgo >
css-select > css-what ```
found 3 vulnerabilities (2 moderate,1 high) in 1651 scanned packages
3 vulnerabilities require manual review. See the full report for details.
I have tried updating using all the version @angular-devkit/builder-angular available,but no luck. You can see some of the version which i have tried below.
```-- @angular-devkit/build-angular@12.0.2
-- css-minimizer-webpack-plugin@3.0.0
-- cssnano@5.0.6 -- cssnano-preset-default@5.1.3
-- postcss-svgo@5.0.2 -- svgo@2.3.0
-- css-select@3.1.2 -- css-what@4.0.0
-- @angular-devkit/build-angular@12.0.5
-- css-minimizer-webpack-plugin@3.0.0
-- cssnano@5.0.6 -- cssnano-preset-default@5.1.3
-- postcss-svgo@5.0.2 -- svgo@2.3.0
-- css-select@3.1.2 -- css-what@4.0.0
-- @angular-devkit/build-angular@12.1.0-next.6
-- css-minimizer-webpack-plugin@3.0.1
-- cssnano@5.0.6 -- cssnano-preset-default@5.1.3
-- postcss-svgo@5.0.2 -- svgo@2.3.0
-- css-select@3.1.2 -- css-what@4.0.0 ```
In above @angular-devkit/build-angular is excepting css-what version should be >= 5.0.1 which I am not able to find.
Which version of @angular-devkit/builder-angular@? i need to install so that css-what >= 5.0.1 . Then only that high issue will get resolve.
```FYI
Node version - v12.18.2
npm - 6.14.5
"dependencies": {
"@angular-devkit/core": "^12.0.2","@angular/animations": "^12.0.2","@angular/common": "^12.0.2","@angular/compiler": "^12.0.2","@angular/core": "^12.0.2","@angular/forms": "^12.0.2","@angular/localize": "^12.0.2","@angular/platform-browser": "^12.0.2","@angular/platform-browser-dynamic": "^12.0.2","@angular/platform-server": "^12.0.2","@angular/router": "^12.0.2","@angular/service-worker": "^12.0.2","@fortawesome/fontawesome-free": "^5.15.3","@ng-bootstrap/ng-bootstrap": "^9.1.2","@ng-select/ng-select": "^5.1.0","@ngrx/store-devtools": "^6.1.0","ag-grid": "^18.1.2","ag-grid-angular": "^18.1.0","ag-grid-community": "^19.0.0","angular2-text-mask": "^9.0.0","autoprefixer": "^10.2.6","classlist.js": "^1.1.20150312","compass-mixins": "^0.12.10","core-js": "^2.6.12","jquery": "^3.6.0","moment": "^2.29.1","ng6-toastr": "^6.0.0","ngx-bootstrap": "^6.2.0","ngx-moment": "^3.2.0","ngx-spinner": "^6.1.2","ngx-toastr": "^14.0.0","postcss-scss": "^3.0.5","rxjs": "^6.6.7","rxjs-compat": "^6.6.7","zone.js": "^0.11.4"
},"devDependencies": {
"@angular-devkit/build-angular": "^12.1.0-next.6","@angular/cli": "^12.0.2","@angular/compiler-cli": "^12.0.2","@angular/language-service": "^12.0.2","@ngrx/store": "^12.1.0","@types/jasmine": "^3.7.6","@types/jasminewd2": "^2.0.9","@types/node": "^15.6.1","codelyzer": "^6.0.2","jasmine-core": "^3.7.1","jasmine-spec-reporter": "^7.0.0","jspm": "^0.16.53","karma": "^6.3.3","karma-chrome-launcher": "^3.1.0","karma-coverage-istanbul-reporter": "^3.0.3","karma-jasmine": "^4.0.1","karma-jasmine-html-reporter": "^1.6.0","protractor": "^7.0.0","ts-node": "^8.3.0","tslint": "^6.1.0","typescript": "^4.2.4"
},```
>quote Thanks in advance,early reply will be appreciated.
解决方法
我能够按照这个人的建议解决这个问题:https://stackoverflow.com/a/62956076/6610617
基本上使用 npm 包 npm-force-resolutions,您可以在 package.json 文件中设置“分辨率”,并强制将任何依赖项安装到您指定的版本。
我能够在分辨率中设置 "css-what": "5.0.1"
并解决了我的问题。
Angular 12.0.5 HMR 不工作,不重新加载模块,不重新加载页面实时重新加载,Angular 11.0.6 重新加载整个页面 调查 Angular 构建系统使用的版本配置 webpack使用 Angular 12.0.5 / next.6 时 - 没有帮助
如何解决Angular 12.0.5 HMR 不工作,不重新加载模块,不重新加载页面实时重新加载,Angular 11.0.6 重新加载整个页面 调查 Angular 构建系统使用的版本配置 webpack使用 Angular 12.0.5 / next.6 时 - 没有帮助
Angular HMR 不替换/重新加载组件
- 实时重载适用于 11.0.6 和 12.1.0-next.6。
- Angular 12.0.5 根本不会重新加载。
任何人都可以使用它并且可以提供一个有效的示例应用程序?
给定:一个简单的入门应用
(来自故事书 https://github.com/chromaui/intro-storybook-angular-template)
使用 Angular 11.0.6
然后 HMR 开箱即用并不能按预期工作,但完全重新加载可以(即启用 [WDS] 实时重新加载。)
更新到 Angular 12.0.5 时
然后 HMR 不会重新加载任何东西。 (根本没有实时重新加载)
12.0.5 行为:更新角度组件时不重新加载。
控制台错误(chrome):
dev-server.js:60 Uncaught Error: [HMR] Hot Module Replacement is disabled.
at Object.5033 (dev-server.js:60)
at __webpack_require__ (bootstrap:19)
at __webpack_exec__ (polyfills.js:12907)
at polyfills.js:12908
at webpackJsonpCallback (jsonp chunk loading:35)
at polyfills.js:1
编辑组件 (HTML) 后,控制台“卡住”“[WDS] 应用热更新...”
更新到 Angular 12.1.0-next.6 时"
结果与 v11 相同(然后 HMR 开箱即用,但完全重新加载可以(即启用 [WDS] 实时重新加载。)
webpack-dev-server 是原因(可能与 webpack 5.3 一起)
经过一番挖掘,我意识到这与 webpack-dev-server 有关。
- https://github.com/webpack/webpack-dev-server/issues/2758
一个解决方案似乎是将 webpack 目标设置为 web(而不是浏览器)进行开发。或者使用测试版的 webpack-dev-server(即 4.0.0-beta.x)
"target: ''web'',
调查 Angular 构建系统使用的版本
在“node_modules/@angular-devkit/build-webpack/package.json”中使用了 webpack-dev-server。
对于 "@angular-devkit/build-angular": "~12.0.5",webpack-dev-server 版本为 3.11.2
"peerDependencies": { "webpack": "^5.30.0","webpack-dev-server": "^3.11.2" },
将 Angular 更新为 v-next 时 对于 "@angular-devkit/build-angular": "^12.1.0-next.6",webpack-dev-server 版本较低,为 3.1.4,与 ''build-angular'' v11 相同。 (可能是因为他们意识到实时重新加载的问题)
"peerDependencies": { "webpack": "^5.30.0","webpack-dev-server": "^3.1.4" },
使用 Angular 11 时 对于“@angular-devkit/build-angular”:“~0.1100.6”
"peerDependencies": { "webpack": "^4.6.0",
配置 webpack(使用 Angular 12.0.5 / next.6 时) - 没有帮助
根据以下资源配置,使用@angular-builders/custom-webpack
没有帮助。帮助! =D
- https://github.com/just-jeb/angular-builders/tree/master/packages/custom-webpack#Custom-webpack-dev-server
- https://github.com/just-jeb/angular-builders/blob/master/packages/custom-webpack/examples/full-cycle-app/extra-webpack.config.ts
//package.json
"devDependencies": {
"@angular-builders/custom-webpack": "^12.1.0",
//angular.json
//replace "builder" in "build" and "serve"
//add customWebpackConfig with path to a new config file
//"builder": "@angular-devkit/build-angular:browser"
"architect": {
"build": {
"builder": "@angular-builders/custom-webpack:browser","options": {
"customWebpackConfig": {
"path": "extra-webpack.config.ts","replaceDuplicatePlugins": true
},//...
//replace "builder": "@angular-devkit/build-angular:dev-server","serve": {
"builder": "@angular-builders/custom-webpack:dev-server",
//extra-webpack.config.ts
import { Configuration } from "webpack";
export default {
target:"web",// target: process.env.NODE_ENV === "development" ? "web" : "browserslist",} as Configuration;
解决方法
我们有一些与您介绍的类似的东西。您是否删除了 package_lock、node_modules 并进行了全新安装?
在 Angular 11.2.4 和新的 Angular 12.1.4 项目中,使用 HRM 进行设置没有问题。 尝试使用 "@angular-builders/custom-webpack": "12.1.0","@angular-devkit/build-angular": "^12.1.4" 它应该可以工作
Angular 2+ (RTL) 如何将 HTML 标记添加到使用 Angular FormControl 构建的 HTML 输入值
如何解决Angular 2+ (RTL) 如何将 HTML 标记添加到使用 Angular FormControl 构建的 HTML 输入值
早上好,
问题: 我正在处理带有用户名和密码输入的 Angular 登录页面。
用户可以通过记住它来获取用户名,所以下次用户登录时,用户名将自动填充但带有掩码(计算):user777 -> ****777
有一个使用 Angular FormControl 构建的输入,我需要向输入值添加一个 HTML 标记或其 unicode 值。
https://www.w3.org/International/articles/inline-bidi-markup/#lrmrlm
我有什么<input type="text"[formControl]="formControlVar"/>
我想达到什么目的:<input value="‎****720">
为什么? 在使用 !?* 等特殊字符时保持 RTL 显示和输入正确的行为。
这不起作用formControl.setValue(''‎****720'')
,我找不到其他方法
JSfiddle 我想要实现的目标:http://jsfiddle.net/52tL8rzc/91/
我希望有人已经遇到了这个问题,可以给我一点启发:)
提前致谢。
angular j j angular j angular angular service service service j
我有一个控制器,我在其中进行以下调用:
mapService.getMapByUuid(mapUUID,isEditor).then(function(datas){ fillMapDatas(datas); }); function fillMapDatas(datas){ if($scope.elements === undefined){ $scope.elements = []; } //Here while debugging my unit test,'datas' contain the promise javascript object instead //of my real reponse. debugger; var allOfThem = _.union($scope.elements,datas.elements); ...
以下是我的服务:
(function () { 'use strict'; var serviceId = 'mapService'; angular.module('onmap.map-module.services').factory(serviceId,[ '$resource','appContext','restHello','restMap',serviceFunc]); function serviceFunc($resource,appContext,restHello,restMap) { var Maps = $resource(appContext+restMap,{uuid: '@uuid',editor: '@editor'}); return{ getMapByUuid: function (uuid,modeEditor) { var maps = Maps.get({'uuid' : uuid,'editor': modeEditor}); return maps.$promise; } }; } })();
最后,这是我的单位测试:
describe('Map controller',function() { var $scope,$rootScope,$httpBackend,$timeout,createController,MapService,$resource; beforeEach(module('onmapApp')); beforeEach(inject(function($injector) { $httpBackend = $injector.get('$httpBackend'); $rootScope = $injector.get('$rootScope'); $scope = $rootScope.$new(); var $controller = $injector.get('$controller'); createController = function() { return $controller('maps.ctrl',{ '$scope': $scope }); }; })); afterEach(function() { $httpBackend.verifyNoOutstandingExpectation(); $httpBackend.verifyNoOutstandingRequest(); }); var response = {"elements":[1,2,3]}; it('should allow user to get a map',function() { var controller = createController(); $httpBackend.expect('GET','/onmap/rest/map/MY-UUID?editor=true') .respond({ "success": response }); // hope to call /onmap/rest/map/MY-UUID?editor=true url and hope to have response as the fillMapDatas parameter $scope.getMapByUUID('MY-UUID',true); $httpBackend.flush(); }); });
我真正想要做的是将我的响应对象({“elements:…})作为fillMapDatas函数的datas参数,我不明白如何模拟所有的服务(服务,承诺,然后)
提前感谢您的帮助
var mapService,$q,$rootScope; beforeEach(inject(function (_mapService_,_$httpBackend_,_$q_,_$rootScope_) { mapService = mapService; $httpBackend = _$httpBackend_; $q = _$q_; $rootScope = _$rootScope_; // expect the actual request $httpBackend.expect('GET','/onmap/rest/map/uuid?editor=true'); // react on that request $httpBackend.whenGET('/onmap/rest/map/uuid?editor=true').respond({ success: { elements: [1,3] } }); }));
您可以看到,您不需要使用$ inject,因为您可以直接注入所需的服务。如果您想在整个测试中使用正确的服务名称,您可以使用前缀和后缀“_”注入它们,注入()足够聪明地识别出您的意思。我们还为每个it()规范设置$ httpBackend mock。并且我们设置$ q和$ rootScope进行后续处理。
以下是您如何测试您的服务方法返回承诺:
it('should return a promise',function () { expect(mapService.getMapUuid('uuid',true).then).tobedefined(); });
由于承诺总是有一个.then()方法,我们可以检查这个属性,看看它是否是一个承诺(当然,其他对象也可以使用这个方法)。
接下来,您可以用适当的价值测试您得到的解决方案的承诺。您可以设置您明确解析的延迟。
it('should resolve with [something]',function () { var data; // set up a deferred var deferred = $q.defer(); // get promise reference var promise = deferred.promise; // set up promise resolve callback promise.then(function (response) { data = response.success; }); mapService.getMapUuid('uuid',true).then(function(response) { // resolve our deferred with the response when it returns deferred.resolve(response); }); // force `$digest` to resolve/reject deferreds $rootScope.$digest(); // make your actual test expect(data).toEqual([something]); });
希望这可以帮助!
关于JS 文件不能在 angular 中工作,但可以在普通的 HTML、CSS+JS 中工作和为什么js文件不起作用的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Angular 12 升级问题与包 @angular-devkit/builder-angular 中的 css-what 版本相关、Angular 12.0.5 HMR 不工作,不重新加载模块,不重新加载页面实时重新加载,Angular 11.0.6 重新加载整个页面 调查 Angular 构建系统使用的版本配置 webpack使用 Angular 12.0.5 / next.6 时 - 没有帮助、Angular 2+ (RTL) 如何将 HTML 标记添加到使用 Angular FormControl 构建的 HTML 输入值、angular j j angular j angular angular service service service j等相关内容,可以在本站寻找。
本文标签: