小编Sau*_*ari的帖子

用于切换类的Angular ngClass和click事件

在Angular中,我想使用ngClass和click事件来切换类.我通过在线查看,但有些是angular1,没有任何明确的指示或示例.任何帮助都感激不尽!

在HTML中,我有以下内容:

<div class="my_class" (click)="clickEvent($event)"  ngClass="{'active': toggle}">                
     Some content
</div>
Run Code Online (Sandbox Code Playgroud)

在.ts:

 clickEvent(event){
    //Haven't really got far
    var targetEle = event.srcElement.attributes.class;        
 }     
Run Code Online (Sandbox Code Playgroud)

angular-ng-class angular

41
推荐指数
5
解决办法
10万
查看次数

为什么即使使用onChange监听器也无法在React中更改输入值

我是React的新手,经过一些教程后,我正在尝试下面的代码.

我创建了一个组件,从商店向它传递道具,在componentWillMount我为组件创建一个新状态.渲染很好,直到现在.

接下来,我state将输入框的值限制在一起,我也有onChange听众.不过,我无法在现场改变我的价值观.

因为,我从角的背景是,我假设结合输入的值陈述象下面会自动更新属性namestate对象.我错了吗?

componentWillMount(){
    this.setState({
        updatable : false,
        name : this.props.name,
        status : this.props.status
    });
}

//relevant DOM from component's render function
<input className="form-control" type="text" value={this.state.name} id={'todoName' + this.props.id} onChange={this.onTodoChange.bind(this)}/>

onTodoChange(){
    console.log(this);
    //consoling 'this' here, shows old values only.
    //not sure how and even if I need to update state here.
    // Do I need to pass new state to this function from DOM
    //TODO: send new data to …
Run Code Online (Sandbox Code Playgroud)

javascript state onchange reactjs

27
推荐指数
5
解决办法
7万
查看次数

有没有办法用 ng new 命令指定角度版本

我正在创建一个新的 Angular 项目,并希望所有 Angular 依赖项都来自稳定的第 7 版本。但是,似乎在运行ng new app命令时 Angular 总是获取最新版本。我的 package.json 显示了来自~8.0.0.

我知道我可以修改 package.json 并将这些依赖项设置为按照语义 7.xx 获取,但我更希望它自动完成,这样我就不会遇到与任何对等依赖项不匹配的机会.

那么,有没有办法告诉 CLI 获取特定的 angular 版本以及根据该 angular 版本的所有依赖项。

编辑:我已经尝试过安装 @angular/cli@7.xx 即使在我运行 ng 新应用程序之后这样做,我的依赖也会按照第 8 版获取

npm package.json angular-cli angular

26
推荐指数
3
解决办法
1万
查看次数

使用Angular Material可以做些什么来改善IE11的行为?

我正在开发一个Angular项目,其中我使用了Angular Material组件(主要是md-Buttons).该应用程序显示了各种瓷砖,每个瓷砖都是md-Button.一次我最多可能有20到30个瓷砖.使用这些瓷砖重复ng-repeat.

该应用程序在Chrome上运行良好,但在IE11上,我经常面临渲染问题.渲染大约需要5-6秒.切换瓷砖显示效果不佳.滚动屏幕会导致组件粘住,然后在1秒后移动.

可能我认为Angular Material对于IE11来说太重了.我可以做些什么来加快IE11的速度,因为这是我的主要目标浏览器?

我试过了:

  1. 更新Angular库.
  2. 使用MS052补丁
  3. 从Angular Material css中删除一些过渡.

上述情况似乎都没有太大影响.

我认为Angular材料是一个很好的库,必须有一些东西可以用来改进它在IE11中的工作.请有人建议一些有效的方法吗?

angularjs internet-explorer-11 angular-material

16
推荐指数
1
解决办法
1万
查看次数

从ng-repeat内输入多次调用ng-change函数

好吧,我有一个问题.我有一个ng-repeat,里面有一个带有ng-change()的输入.这是指令模板的一部分,并且双向绑定到父对象.如果我在输入框中输入内容,一切正常,父对象也会更新.但是,当我必须从指令的控制器替换父对象时,我遇到了一个问题.

问题是,一旦父对象被替换,视图就会被新的(替换的)值绑定.此时,也会手动触发相同的功能(如ng-change())进行某些计算.

但是,我注意到同样的功能再次被调用(不知道如何).重要的是输入的ng模型是未定义的,当它们被自动调用时.结果,最后父对象包含未定义的值.

我仍然感到困惑,为什么在控制器方法调用之后调用ng-change.是否必须对ng-repeat创建的子范围执行某些操作.

我已经使用了$ index的跟踪.我把模型绑定到parentObj.something.something [$ index]

对上述任何帮助表示赞赏......

我有

 module.directive('myDirective', function () {
        return {
            scope: {
                target: '=',
              },
            controller: 'DemoController',
            templateUrl: 'app/demo/html/demo.html'
}
});
Run Code Online (Sandbox Code Playgroud)

主要模板:

<li ng-repeat="l in group_Main.mains"
<li ng-repeat="target in l.description.Value track by $index"
<li ng-repeat="(key, groups) in target.group track by $index">
 <div layout="row" layout-wrap myDirective  target="group"></div>
</li>
</li>
</li>
Run Code Online (Sandbox Code Playgroud)

app/demo/html/demo.html :: 指令的模板

<div class="table_FY_height" flex ng-repeat="m in months track by $index">
<input ng-change="changeIt(target.targets.years[1].values.data[$index], target, year,parent, $index)"" ng-if="$index>currentMonth"  ng-model="target.targets.years[1].values.data[$index]"/> 
</div>
Run Code Online (Sandbox Code Playgroud)

在指令的控制器中:

module.controller('DemoController', function($scope, $rootScope){
changeIt(-1,$scope.target,$scope.year,$scope.parent); …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs ng-repeat

6
推荐指数
1
解决办法
2589
查看次数

默认情况下,如何在http服务器中提供index.html

我已经在节点环境中创建了一个基本的AngularJS应用。我正在使用http-server模块将文件提供给浏览器。一切正常,除了index.html服务器启动时默认无法提供服务的事实。

我检查了npm注册表以获得http服务器模块的更多选项,还尝试在SO上寻找相关问题,但仍然无法获得我想要的东西。

是否可以指定服务器启动时要拾取的文件。

我的服务器基本上在localhost:8080我想要的时候开始localhost:8080/index.html

我的开始脚本是http-server -a localhost -p 8080 -c-1。如果我做这样的事http-server -a localhost -p 8080 -c-1 index.html,令我惊讶的是它打开了index.html文件,但是是在文件协议而不是在文件协议上提供的localhost

我在这里做错了。

PS我参观了Angular JS种子,那里有官方的例子http-server -a localhost -p 8080 -c-1 ./app。但是,当我这样做时,我收到错误消息,尽管我的结构类似于种子,但Windows无法找到指定的路径

我的结构:

dir
   --app.js
   --index.html
   --node_modules
   --package.json
Run Code Online (Sandbox Code Playgroud)

localhost httpserver angularjs

6
推荐指数
2
解决办法
4373
查看次数

如何在AngularJS应用程序中实现服务工作者以获得离线体验

我正在尝试在我的一个AngularJS应用程序中实现一个服务工作者.基于教程(主要是MDN),我提出了以下实现来将它与AngularJS合并.

首先,因为app.run()似乎是正确的地方.我在我的run块中有以下代码:

if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('workerFile.js')
  .then(function(reg) {
    console.log('Registration done');
  },function(error) {
    console.log('Registration failed with ' + error);
  });
}
Run Code Online (Sandbox Code Playgroud)

我的服务工作者文件如下:

this.addEventListener('install', function(event) {
  event.waitUntil(
    caches.open('v1').then(function(cache) {
      return cache.addAll([
        'index.html'
      ]);
    })
  );
});
Run Code Online (Sandbox Code Playgroud)

this.addEventListener('fetch', function(event) {
  event.respondWith(
    caches.match(event.request)
  );
});
Run Code Online (Sandbox Code Playgroud)

完成此操作后,我希望我的index.html文件可以缓存并脱机使用.但那还没有发生.在线时,每次为服务器提供文件(在提琴手中看到).

我尝试过更改thisself工作文件.这没有用.此外,我正在测试它,localhost所以我认为它不应该有不安全的浏览问题.我对JavaScript中的Workers概念很陌生,因此没有足够的选项可以尝试.

有人能指出我的错误吗?显然,互联网上的文章并不多.

PS:我参观了这个问题:没多大帮助.

更新:再看一下文档,我相信它在注册时与scope属性有关.我该如何定义此属性以包含我的整个应用程序?我尝试过使用{scope: '/'}它似乎不起作用.

javascript web-worker offline-caching angularjs service-worker

6
推荐指数
0
解决办法
1778
查看次数

为什么在Angular中传递$事件(处理DOM事件时)是一种可疑的做法

我正在阅读Angular 2文档,我发现:

通过$ event不是一个好习惯

键入事件对象会显示出将整个DOM事件传递给方法的重要意见:组件对模板详细信息的了解太多.它不能在不了解HTML实现的情况下提取信息.这打破了模板(用户看到的)与组件(应用程序如何处理用户数据)之间的关注点分离.

出于某种原因,我无法完全理解它所说的内容.似乎在任何地方都没有可用的解释.

有人可以用更简单的术语解释这个的确切含义(如果可能的话,举个例子)?

javascript events angular

5
推荐指数
1
解决办法
843
查看次数

无法在 Angular4 GET 响应中查看“Content-Disposition”标头

我正在尝试在我的 Angular 应用程序中下载 pdf 文件。服务器 (JBoss) 提供一个文件

Content-type : application/pdf and Content- Disposition

标题设置为附件。我可以在提琴手的响应中很好地看到这些标题。但是,在我的订阅回调中,我看不到相同的标题。相反,标题包含两个属性,即: _headers and _normalizedHeaders

在进行 GET 调用时。我愿意:

`this._http.get(url, {responseType: 'arraybuffer'}).subscribe((file: Response)=>{

    //Cant find headers in file here

});`
Run Code Online (Sandbox Code Playgroud)

我也尝试将 responseType 设置为RequestContentType.Blob,它也没有任何区别。

对于我的下载实现,我有一段代码,它一直适用于我用 AngularJS 下载附件。我只是在这里努力阅读Content-Disposition标题。

我也尝试过设置{ observe : response },希望以这种方式得到详细的回应。但是,由于某些原因,不允许在 GET 中设置该属性 options

我在 SO 上看到了很多答案并尝试了其中的大部分,但仍然无法获得标题。

PS:直接在浏览器上点击 API 会得到下载的文件,这意味着我的 Java 代码很好,这让我想知道我上面的代码有什么问题。

请求建议。

javascript browser download http-headers angular

4
推荐指数
2
解决办法
8117
查看次数

Google Chrome浏览器将XHR呼叫的状态显示为(已阻止:其他)

我的一个http通话中获得以下状态。我以前没看过这种状态。我的所有电话均被阻止,服务器未收到任何点击。

我尝试查找它,发现它可能是由于某种称为“混合内容”的缘故。不幸的是,我对此也不了解。

有人可以解释什么可能导致此问题以及如何解决它。?

javascript browser webserver google-chrome http

4
推荐指数
2
解决办法
1970
查看次数