我有一个使用ng-model
绑定到select
输入的变量。但是,看起来变量没有用正确的数据更新,并且仍然具有初始化期间分配的值。
在html
的其他地方,我有一些几乎完全相同的东西(处理不同的数据(,它工作得很好。
这里是我设置默认值的地方:
var setDefaultProps = function () {
$scope.SelectedEnv = [];
$scope.SelectedWorkFlows = [];
...
}
此函数在声明之后立即调用。
以下是实际工作部分的html
:
<div class="form-group row">
<label for="inputPassword3" class="col-sm-3 form-control-label"> WorkFlow</label>
<div class="col-sm-5">
<select class="form-control" ng-model="SelectedWorkFlows" ng-change="GetEnvironments()">
<option ng-repeat="wf in lstWorkflowModel" ng-value="{{wf}}">{{wf.label}}</option>
</select>
</div>
</div>
当我对任何函数中的SelectedWorkFlows
变量(GetEnvironments
或稍后调用的东西(执行console.log
时,我会得到所需的输出(对象(
以下是不起作用部分的html
:
<div ng-if="!IsSmoke" class="form-group row">
<label for="inputPassword3" class="col-sm-3 form-control-label"> Environment</label>
<div class="col-sm-5">
<select id ="environmentSelect" class="form-control" ng-model="SelectedEnv" ng-change="GetUsers()">
<option ng-repeat="env in lstOfPrefillmodel" ng-value="{{env}}">{{env.label}}</option>
</select>
</div>
</div>
在GetUsers
函数中,一旦我为SelectedWorkflows
做了console.log
,我就会得到上一个输出。但是,当我为SelectedEnv
执行console.log
时,无论我在页面上选择什么(空数组的初始值(,该值都保持不变。
看起来我已经初始化了我的变量,正确地设置了其他所有内容,并且有两组实际上相同的代码,它们的功能不同。我应该寻找什么来正确调试它?
编辑
(这是一个描述我处境的双关语https://plnkr.co/edit/04vOmQKfyE564Nqi?preview>。
我使用当前代码的结构创建了这个,但出于某种原因,它在这里有效。我仍然在观察我的变量没有像最初在我的原始代码中描述的那样改变值的问题
好吧,我想出了一个变通办法(我怀疑这是否是问题的实际解决方案,但嘿(。
我只是将变量初始化为一个对象。例如:
$scope.SelectedEnv = {}
然后,我将输入绑定到变量中的一个字段:
ng-model=SelectedEnv.data
之后,所有数据似乎都被正确绑定了。