可能我完全不理解Angular。我的问题是:
在UI上我有以下内容:
<input ng-model="$ctrl.newItem.action" id="action" name="action" class="form-control"/>
所以action
元素是双向绑定到角度模型。
现在在UI的另一部分但是使用相同的控制器我调用编辑方法:
$ctrl.updateItem = function (item) {
$ctrl.newItem.action = item.action;
//...
我希望$ctrl.newItem.action
显示当前正在编辑的元素bu的操作,而不是我在控制台中看到错误:
TypeError: Cannot set property of undefined
为什么$ctrl.newItem.action
未定义?
答案 0 :(得分:1)
角度模型未定义,直到您在控制器中定义它或在输入中键入内容
尝试这个
$ctrl.updateItem = function (item) {
$ctrl.newItem = {action: item.action};
//...
答案 1 :(得分:0)
从我的理解是你试图访问控制器中的变量但是你得到一个错误,该变量是未定义的,所以如果是这种情况你必须确保以下内容:
- 在视图中不要添加服务或控制器名称或其他任何内容,只需添加变量名称Ex(HTML CODE):
<input ng-model="newItem.action" id="action" name="action" class="form-control"/>
- 确保你在控制器中添加了$ scope服务,并将变量名称附加到它Ex(JS CODE):
app.controller(function($scope){
$scope.newItem=...
});
- 变量newItem
应该附加到控制器中的作用域服务,如下所示:
$scope.newItem = {action:"awesomeAction"};
或至少:
$scope.newItem = {};
(在这种情况下,angularjs将自动创建参数&#34; .action&#34;