Tyl*_*dix 45 javascript angularjs angularjs-scope
我使用select来显示客户端名称.用户应该能够选择现有客户端,然后更新范围属性:
调节器
初始化"第一选择".
if($scope.clients.length > 0) $scope.existingClient = $scope.clients[0];
Run Code Online (Sandbox Code Playgroud)
视图
<select
id='nm-existing-client-name'
class='form-control input-lg'
ng-model='existingClient'
ng-options="client.name for client in clients">
</select>
Run Code Online (Sandbox Code Playgroud)
existingClient选择菜单更改时,scope属性不会更改.如果没有初始化值(上面的控制器行被删除),则值existingClient将保持未定义.
ng-change当值更改时附加将触发,但模型本身不会更新为新值.
我正在使用AngularJS v1.2.0-rc.3.
Jas*_*aat 123
我想你可能正在使用一个子范围而且不知道它. ng-if,ng-repeat,ng-switch和ng-include所有创建子作用域.范围上的值是继承的,但是如果更改子范围中的值,它会在子范围上设置一个值,并在父项上保持继承的值不变.尝试使用对象来保存您的值并查看是否修复了它.由于您只是在对象上设置属性而不是直接在作用域上设置值,因此它将使用父作用域的继承对象并更新该值.
$scope.data = {
existingClient: $scope.clients.length > 0 ? $scope.clients[0] : undefined
};
Run Code Online (Sandbox Code Playgroud)
视图:
<select ng-model="data.existingClient"
ng-options="client.name for client in clients">
</select>
Run Code Online (Sandbox Code Playgroud)
您可以在chrome中使用AngularJS Batarang扩展来帮助调试示波器.