gpt4 book ai didi

javascript - 带有 Controller 的 Angular 1.5 组件绑定(bind)不起作用

转载 作者:行者123 更新时间:2023-11-30 15:21:12 25 4
gpt4 key购买 nike

所以在我使用 Controller 执行特定功能之前,我的绑定(bind)一直在工作。我可以执行 $ctrl.value 并且数据的值显示在 View 上。

当我尝试实现一个 Controller 时,该值变为未定义。为什么会这样?

当前组件:

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>

所以在我插入我自己的 Controller 之前,我通过执行 $ctrl.value 来测试我是否正在获取值,并且它有效(来自本地 JSON 文件的 JSON 数据)。我正在使用 Controller 显示即将到来的数字(数组中的简单数字)以匹配 * 符号,所以它看起来像评级。我正在添加其他代码,这可能有助于了解我正在尝试做什么,但我认为问题出在我的 Controller 上。 enter image description here

最佳答案

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

  1. 当您使用 controllerAs 语法时,不要在范围内混合使用 $scope。这里你使用的是组件,所以你不应该考虑使用 $scope
  2. bindingsvalue 将在 Controller 上下文中可用。所以请使用 vm.value 而不是 $scope.value
  3. 在组件启动时分配值时使用 $onInit 生命周期 Hook 。
  4. 现在使用 vm.entries 而不是仅使用 entries

Controller

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

关于javascript - 带有 Controller 的 Angular 1.5 组件绑定(bind)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43704536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com