小编Eri*_*icC的帖子

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

Angular 2:组件输入/输出或更新服务属性

学习Angular 2并尝试理解何时应该使用组件输入/输出以及何时应该更好地更新服务属性(如果需要更新,可能附加一个EventEmitter).

我有一个列表,例如,任务,每个列表项显示此列表项的各种信息和选项.此列表的工作方式是只有一个列表项处于活动状态,而活动列表项位于列表顶部.每个列表项的其中一个选项是激活它(如果它尚未激活),但其他组件也可能更改哪个是活动项.

我有一个父task组件,list组件和list-item组件(以及一些其他相关组件),另外我有一个task-service.

主要task组件可以使用list组件(和something-realted组件,使用的许多组件需要知道并可能更改activeItemId),如下所示:

<list [(active-item-id)]=“activeItemId”></list>
<something-related [(active-item-id)]=“activeItemId”></something-related>
Run Code Online (Sandbox Code Playgroud)

list可以使用组件list-item这种方式(active是一个管道,并就项目的属性):

<list-item *ngFor=“#item of items | active” 
           (item)=“item”
           [(active-item-id)]=“activeItemId”>
</list-item>
Run Code Online (Sandbox Code Playgroud)

但由于我有一个task-service包含各种相关任务,我可以在服务上使用已经存在的activeItemId-property(具有eventemitter),并且所有各种任务组件都可以通过此属性获取信息(并进行更新),而不是通过输入/输出通过各种组件来回"发送"财产.

什么时候才能将服务用于这样的事情,何时适合使用组件的输入/输出?

angularjs

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

AngularJS:如何在表单字段获得焦点时触发函数调用

我希望我的控制器在用户单击表单字段时(表单字段获得焦点时)执行某些操作.我怎样才能做到这一点?看到这个plunker.

这是我的控制器:angular.module('myApp',[])

.controller('AppCtrl', ['$scope',
  function($scope) {
    $scope.field1 = "Default text";
    $scope.focus = false;
    $scope.formFieldJustGotFocus = function() {
      $scope.focus = true; 
      // Do all the stuff I need to happen when the form has just gotten focus
    }
  }
]);
Run Code Online (Sandbox Code Playgroud)

以下是观点:

<body ng-app="myApp" ng-controller="AppCtrl">
  <h3>Testing</h3>
  <p>I want to perform some action in the controller when a form field gets focus. How can I best achieve this?</p>
  <form name="myForm">
    <input type="text" name="field1" ng-model="field1">
  </form>
  <p>Form field has focus: {{focus}}</p>
</body>
Run Code Online (Sandbox Code Playgroud)

angularjs

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

如何从禁用的输入中删除背景,边框和不允许指针

我正在使用Bootstrap:在禁用状态下,如何删除表单字段中的背景,边框和不允许使用的指针?在不更改其他表单上禁用字段的情况下...

我尝试了一下,但没有成功(使用AngularJS):

HTML:

<input type="text" ng-disabled="toggle" ng-class="{'no-extras': toggle}" class="form-control" id="name" placeholder="Name" />
Run Code Online (Sandbox Code Playgroud)

和CSS:

.no-extras {
  border: 0;
  box-shadow: none;
  background-color: white;
  cursor: default;
}
Run Code Online (Sandbox Code Playgroud)

在此处查看代码http://plnkr.co/edit/1AuszJ?p=preview

css twitter-bootstrap

2
推荐指数
1
解决办法
3013
查看次数

如何渲染变量(或prop)内的jsx/html?

const Footer = () => {
  let a="<b>Hey</b>"
  return (
    <div>
      Some bold text: {a}
    </div>
  )
}
Run Code Online (Sandbox Code Playgroud)

这只会呈现为Some bold text: <b>Hey</b>.如何将粗体文本呈现为粗体?变量内容是我自己的,所以我不必担心eval的东西.

reactjs

2
推荐指数
1
解决办法
1774
查看次数

什么是".items"和".json()"

我正在阅读关于Angular 2的ng-book,有一段代码:

return this.http.get(queryUrl)
  .map((response: Response) => {
    return (<any>response.json()).items.map(item => {
      // console.log("raw item", item); // uncomment if you want to debug
      return new SearchResult({
        id: item.id.videoId,
        title: item.snippet.title,
        description: item.snippet.description,
        thumbnailUrl: item.snippet.thumbnails.high.url
      }); 
    });
  });
Run Code Online (Sandbox Code Playgroud)

.json()第3行是什么?我已经google了,但找不到这种方法的任何描述.

javascript angular

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