Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用ng repeat将对象以角度传递给组件_Javascript_Angularjs_Angularjs Ng Repeat_Angular Components - Fatal编程技术网

Javascript 无法使用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

我正在使用Angular 1.6基于组件的方法构建应用程序。我有一个“article”组件,其中包含一个“block”组件,我希望在ng repeat循环中从一个项目到一个模块传递数据,但无法实现这一点: 以下是我的文章模板:

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