【问题标题】:angularjs 'bindings' in component doesn't work组件中的angularjs“绑定”不起作用
【发布时间】:2017-11-12 19:02:52
【问题描述】:
.component(
  'testComponent',
 {bindings: {name:'<'},
  template: `{{$ctrl.name}}<br/>
             {{$ctrl.title}}<br/>
             {{test.name}}<br/>
             {{test.title}}<br/>
             {{name}}<br/>
             {{title}}<br/>`,
  controller: function (){
    this.name = 'abc';
    this.title = 'def';
  },
  controllerAs: 'test'
})

此代码是将组件添加到模块中。 模板中写了6个表达式。但只有第二个,$ctrl.title 运行良好。其他的没有正确绑定。 当我从bindings 中删除name 时,$ctrl.name 也可以正常工作。但是 AFAIK 所有 6 个表达式都必须起作用。

我做错了什么?

【问题讨论】:

  • 不要说它“不起作用”,就这样吧。 描述问题。描述你想要完成的事情。

标签: javascript angularjs components


【解决方案1】:

因为这里的绑定'&lt;' 表示单向绑定 你在哪里使用这个组件 名称绑定应从您调用此组件的位置传递 例如

<test-component>name='abc' </test-component>

如果您使用$cntrl,这也可以删除controllerAs = test,因为它是组件的默认controllerAs,并且您将其替换为test

【讨论】:

  • 我应该向您展示完整的源代码。我已经测试过 '=', '=?'和 '@'。只有'=?即使在初始化后不观察该值也可以工作。我认为不提供绑定选项并将其作为“=?”工作相同,但它不反映初始化一次后更改的值。
  • docs.angularjs.org/guide/expression 我认为我的组件以“一次性绑定”的方式工作,虽然它没有被集成。
猜你喜欢
  • 2017-05-02
  • 2018-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-13
  • 2016-01-16
  • 2014-10-21
相关资源
最近更新 更多