AngularJS自定义组件 - 未定义绑定

时间:2017-04-20 14:34:18

标签: angularjs angular-components

在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);
    }
  }
 });

2 个答案:

答案 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>