Javascript 无法使用ng repeat将对象以角度传递给组件
我正在使用Angular 1.6基于组件的方法构建应用程序。我有一个“article”组件,其中包含一个“block”组件,我希望在ng repeat循环中从一个项目到一个模块传递数据,但无法实现这一点: 以下是我的文章模板:Javascript 无法使用ng repeat将对象以角度传递给组件,javascript,angularjs,angularjs-ng-repeat,angular-components,Javascript,Angularjs,Angularjs Ng Repeat,Angular Components,我正在使用Angular 1.6基于组件的方法构建应用程序。我有一个“article”组件,其中包含一个“block”组件,我希望在ng repeat循环中从一个项目到一个模块传递数据,但无法实现这一点: 以下是我的文章模板: <md-content class="article-detail"> <div layout="row"> <div flex="20"></div> <div layout="column" f
<md-content class="article-detail">
<div layout="row">
<div flex="20"></div>
<div layout="column" flex="60" layout-align="center center">
<div class="article-preview">
<div class="article-photo">
<img ng-src="{{$ctrl.article.image}}"/>
</div>
<h1 class="article-info">ARTICLE</h1>
</div>
<div class="article-content">
<h1>{{$ctrl.article.title.toUpperCase()}}</h1>
</div>
<article-block ng-repeat="block in $ctrl.article.blocks" block="block"></article-block>
</div>
</div>
</div>
<div flex="20">
</div>
</div>
</md-content>
我花了很多时间试图找出一个错误,但我仍然没有发现。
我是Angular方面的新手,非常感谢您的帮助一旦组件控制器初始化,组件绑定就不会反映在控制器上下文中。您可以在组件的
$onInit
生命周期钩子中附加绑定
class ArticleBlockController {
constructor() {
'ngInject';
}
$onInit(){
console.log(this.block);
}
}
如果希望以这种方式使用组件,则必须调整
$compileProvider
中的某些设置,其中必须启用preAssignBindingsEnabled
$compileProvider.preAssignBindingsEnabled(true);
注意:设置preAssignBindingsEnabled
不是您在应用程序中应该采用的首选方式
应用基本上,它已经被引入,使Angular 1组件看起来与Angular 2组件API相同。迁移时,它将使您的工作更轻松
也许这与在对象中如何传递控制器有关。控制器本身工作时不会抛出错误吗?我会认为你是对的,谢谢,但是a如何才能获得一个对象属性来决定我应该使用哪个模板呢?我仍然有这个问题,因为我在$attrs中得到字符串值
class ArticleBlockController {
constructor() {
'ngInject';
}
$onInit(){
console.log(this.block);
}
}
$compileProvider.preAssignBindingsEnabled(true);