Angular 1.5组件绑定具有控制器不起作用



,因此我的绑定在下面工作直到我使用控制器执行某个功能之前。我可以做$ ctrl.value,并且数据的值在视图上显示。

当我尝试实现控制器时,该值将变得不确定。为什么会发生这种情况?

当前组件:

module.component('ratingComponent',{
    templateUrl:'jay-movies/movie-rating.component.html',
    bindings: {
        value:"<"
    },
    controllerAs:'vm',
    controller: ($scope)=>{
        let vm = this;
        $scope.entries = new Array($scope.value);
        console.log($scope.entries);
    }
})

<span ng-repeat="stars in entries track by $index ">
*
</span>

<tr ng-repeat="m in data">
			<td>{{m.title}}</td>
			<td>{{m.length}}</td>
			<td>
				<rating-Component value= "m.rating" ></rating-Component>
			</td>
			<td>

因此,在插入自己的控制器之前,我要测试是否通过执行$ ctrl.value来获取该值,并且它可以工作(来自本地JSON文件的JSON数据(。我正在使用控制器显示即将到来的数字(数组中的简单数字(以匹配 *符号,因此看起来像是评分。我正在添加其他代码,这可能有助于查看我要做的事情,但是我认为问题是我的控制器。在此处输入图像描述

您有下面提到的几个错误。

  1. 使用controllerAs语法时,请勿将$scope混合在范围内。在这里,您正在使用组件,因此您不应考虑使用$scope
  2. bindingsvalue将在控制器上下文中可用。因此,如果$scope.value,则使用vm.value
  3. 在组件启动上分配值时,请使用$onInit Lifecylce Hook。
  4. 现在使用vm.entries,而不是entries

控制器

controller: ()=>{
    let vm = this;
    $onInit(){
       vm.entries = new Array(vm.value);
       onsole.log(vm.entries);
    }
}

我认为您忘记了范围对象之前的 vm。因此,在模板中尝试一下。

ng-repeat="stars in vm.entries track by $index "

相关内容

  • 没有找到相关文章

最新更新