在AngularJS中编写自定义组件,我想要传递一个名为“parentview”的属性。
我的代码如下。
我组件控制器中'parentview'的console.log()显示“未定义”......我不明白为什么。特别是考虑到“用户”和“限制”都能很好地显示出来。
有任何线索吗?
由于
dashboard.html
<div>
<suggested-sessions user="user" limit="3" parentview='Dash'></suggested-sessions>
</div>
suggestedSessions组件:
component('suggestedSessions', {
bindings: {
user: '<',
limit: '<',
parentview: '<'
},
template:
`
<div class="padding-container">
<session-item-by-id ng-repeat="group in $ctrl.groups | orderBy:'preview.timestamp'" group=group limit="3" parentview="$ctrl.parentview"></session-item-by-id>
</div>
`,
controller: function($q, $timeout, GroupService) {
this.$onInit = function() {
console.log('parent view: ', this.parentview);
}
}
});
答案 0 :(得分:0)
尝试使用@
代替<
来绑定字符串。
bindings: {
user: '@',
limit: '<',
parentview: '@'
},
来自AngularJS Components文档:
当输入是一个字符串时,可以使用@ bindings,特别是当绑定的值没有改变时。
答案 1 :(得分:0)
如果你想传递一个字符串,我认为你需要添加额外的引号
JSFiddle example
<div>
<suggested-sessions user="user" limit="3" parentview='"Dash"'></suggested-
sessions>
</div>