【发布时间】:2017-03-26 03:49:46
【问题描述】:
Angular 1.X 中的指令默认设置为具有两种绑定方式。默认情况下,组件具有隔离范围。我有一个看起来像这样的视图:
<div class="my-view">
{{controllerVariable}}
</div>
如果我将上述设置为指令,controllerVariable 在以下情况下正确加载:
<div ng-controller="myController">
<my-view></my-view>
</div>
但如果我使用以下方法将其设置为组件:
myApp.component('myView', {
templateUrl: '/path/to/view',
bindings: '='
});
则不显示变量值。我尝试将$ctrl 添加到变量中:
<div class="my-view">
{{$ctrl.controllerVariable}}
</div>
但这也不显示值。
我在这里错过了什么?
【问题讨论】:
-
不推荐在组件中使用双向绑定。组件被设计成一个紧凑的、可重用的元素,完全独立,这意味着它不依赖于周围的 HTML/JavaScript,也不会导致周围的 HTML/JavaScript 发生变化。组件可以 与其他应用元素通信,但它们不应该能够修改或被其他元素修改。
标签: angularjs angularjs-scope angular-components