**编辑:道歉,我的第一个例子并不代表我的代码。
经过数小时和数小时的研究和测试后,我终于诉诸于此。
问题是:我无法在ng-repeat的子范围内更新控制器范围内的模型。我不是在对原语进行迭代,因为这似乎是这个问题的常见原因,而且,在尝试复制我的问题时,我正在做的事情似乎有效...任何帮助都将非常感激。
我目前正在使用Angular 1.2.16
首先:plunker
中的工作示例第二:破碎的代码
'use strict';
angular.module('myApp')
.controller('myController', [ '$scope', function ($scope) {
$scope.object = {
description: '',
config: {
game_type: ''
}
};
$scope.data = {
'game_types': [
{'key': 'meow', 'val': 2},
{'key': 'meow1', 'val': 3},
{'key': 'meow2', 'val': 4}
]
};
}]);
HTML //这个snippit包装在一个ng-app中,它不包括在内
<div ng-controller="myController">
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<h4>Description</h4>
<input class="form-control" ng-model="object.description" placeholder="Enter a Description" type="text" />
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<h4>Contest Type</h4>
<hr>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<div data-toggle="buttons">
<label ng-repeat="type in data.game_types" class="btn btn-block btn-primary">
<input ng-model="object.description" type="radio" name="game_type" ng-value="type.val">{{ type.key }}
</label>
</div>
</div>
</div>
</div>
</div>
</div>
我也尝试直接从ng-repeat内部引用父作用域(虽然我不认为我应该提供我的数据),但无济于事。
我很困惑。从我的所有研究中,这应该是完全没问题的。并且相关联,在实践中起作用。
由于我遇到的奇怪现象,我只发布了一个单独的问题,并且因为之前的建议,主要是关于范围如何工作以及如何绑定到基元,似乎不是问题所在。
非常感谢您的帮助。
答案 0 :(得分:1)
<强>更新强>
看起来你刚刚使用了错误的单选按钮绑定。您可能打算绑定到object.description
:
object.config.game_type
<input ng-model="object.config.game_type" type="radio" ng-value="type.val">
...
Here is an update给你的傻瓜,表明绑定工作正常。
旧答案
ng-controller
仅适用于您添加到的元素以及任何嵌套元素。所以这些都包括在内:
<div class="row" ng-controller="myController">
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<h4>Description</h4>
<input class="form-control" ng-model="object.description" placeholder="Enter a Description" type="text" />
</div>
</div>
要使其余元素生效,请将ng-controller
添加到周围元素,例如body
。
答案 1 :(得分:0)
DERP。 Bootstrap事件并没有切换输入,因此没有任何改变。 &GT;。&LT;
经验教训,bootstrap JS和angular不能很好地融合在一起。使用angular-ui-bootstrap,一切都很棒。