gpt4 book ai didi

javascript - 无法读取 AngularJS 中未定义的属性 'selection'

转载 作者:行者123 更新时间:2023-11-30 17:31:46 26 4
gpt4 key购买 nike

我在将我的表单输入链接到一个已定义的工厂时遇到问题,该工厂已注入(inject)到呈现该表单的 Controller 中。这是我的工厂:

App.factory('DeviceSelection',function() {
var states=[{selection:{}},{selection:{}},{selection:{}},{selection:{}}];
return states;
});

这是我的表单输入:

            <div class="controls">
<label class="radio">
<input type="radio" name="user[role]" id="user_role_managing_editor" value="Managing editor" ng-model='states[0].selection.hours'>
Yes
</label>
<label class="radio">
<input type="radio" name="user[role]" id="user_role_area_editor" value="Area editor", ng-model='states[0].selection.hours'>
No
</label>
</div>

因此,当我尝试单击该单选框时,我在 JS 控制台中看到以下内容:

TypeError: Cannot read property 'selection' of undefined

这是否意味着我需要在渲染 View 之前初始化模型。如果有,在哪里?

我正在尝试实现一个多步骤表单,链接模型中的所有输入,直到到达最后一步时我能够将结果发送到 API。如这里所问:

Store status between forms in AngularJS?

最佳答案

你说你已经注入(inject)了你的 Controller 。很高兴看到该注入(inject),但让我盲目猜测可能发生的事情:

我假设你有(类似的)这个:

YourApp.controller('YourController', ['$scope', 'YourFactory', function ($scope,$yourFactory) {
...

但是,您是否已将注入(inject)设置到 $scope 中?否则 View 将无法访问:)

所以,如果您没有,请执行以下操作:

 $scope.states=$yourFactory;

我真的相信这就是发生的事情。 Controller 需要通过 $scope

告诉 View 在哪里可以找到该状态数组

关于javascript - 无法读取 AngularJS 中未定义的属性 'selection',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22902340/

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