【发布时间】:2016-11-05 13:32:31
【问题描述】:
自从升级到 1.5.x 版本后,我正在从 AngularJS 指令迁移到组件,并为接下来的 2.0 迁移做准备。这主要是一个平稳的过渡,但我正在努力弄清楚如何调用一个函数并从我的组件控制器传递我的页面控制器中的属性。
我的 components.js 文件中定义了一个组件
myApp.component('itemList', {
bindings: {
items: '<',
setCurrentItem: '&'
},
templateUrl: 'templates/itemPicker.html',
controller: function itemPickerController(){
},
controllerAs: 'pickerCtrl'
});
我有一个组件模板 [templates/itemPicker.html]
<ul>
<li class="ng-repeat="item in pickerCtrl.items>
<button type="button" ng-click="setCurrentItem(item)">
{{item.name}}
</button>
</li>
</ul>
在我的页面控制器 [ctrlPage] 我有一个功能:
function setCurrentItem(item) {
...
}
我从数据库中加载 items 数组,然后使用如下组件将其显示在我的 page.html 中:
<item-list items="items"></item-list>
重复显示正确,但是单击按钮不会调用页面中的 setCurrentItem 函数,我不确定我在这里缺少什么。
我一直在查看“require”,并认为我应该将其添加到组件定义中,
require: '^ctrlPage'
但我不确定这是否朝着正确的方向前进,如果这是正确的下一步,其余的语法会是什么。
【问题讨论】:
标签: javascript angularjs angular components angular2-directives