gpt4 book ai didi

javascript - AngularJS:选择不双向绑定(bind)到模型

转载 作者:IT王子 更新时间:2023-10-29 03:04:07 24 4
gpt4 key购买 nike

我正在使用选择来显示客户名称。用户应该能够选择一个现有的客户端,然后该客户端将更新范围属性:

Controller

正在初始化“第一选择”。

if($scope.clients.length > 0) $scope.existingClient = $scope.clients[0];

查看

<select
id='nm-existing-client-name'
class='form-control input-lg'
ng-model='existingClient'
ng-options="client.name for client in clients">
</select>

范围属性 existingClient 在选择菜单更改时不会更改。如果没有初始化任何值(上面的 Controller 行被删除),existingClient 的值将保持未定义状态。

附加 ng-change 将在值更改时触发,但模型本身不会更新为新值。

我正在使用 AngularJS v1.2.0-rc.3

最佳答案

我认为您可能正在使用子作用域但自己并不知道。 ng-ifng-repeatng-switchng-include 都会创建子作用域。作用域上的值是继承的,但如果更改子作用域中的值,它会在子作用域上设置一个值,并使继承的值在父作用域上保持不变。尝试使用一个对象来保存您的值,看看是否可以解决问题。由于您只是在对象上设置属性,而不是直接在作用域上设置值,它将使用父作用域的继承对象并更新值。

$scope.data = {
existingClient: $scope.clients.length > 0 ? $scope.clients[0] : undefined
};

查看:

<select ng-model="data.existingClient" 
ng-options="client.name for client in clients">
</select>

您可以使用 AngularJS Batarang extension在 chrome 中帮助调试示波器。

关于javascript - AngularJS:选择不双向绑定(bind)到模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19408883/

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