我有一个模态对话框(ui bootstrap对话框),显示一些表单字段供选择。当我选择并单击保存时,绑定是可以的,我可以从我的浏览器开发工具栏中看到这一点。但是当我再次打开模态来编辑更改时,下拉列表上的绑定将丢失,它们都会重置为选择列表中的第一个选项,如果我从开发工具中查看我的模型,那么正确的值是存在但不反映对话框显示。
我有一个指令'display-paramaters'来处理参数显示
(function(){
function displayParameters(){
return{
scope:true,
restrict:'E',
templateUrl:'app/templates/displayParameters.html',
controller:function($scope,globalContainer){
$scope.globals=globalContainer.variables;
}
}
}
angular.module("App").directive("displayParameters",displayParameters);
})();
模板是
<div>
<div class="col-md-4">
<label class="control-label">{{mapping.CommandMappings[0].Field}}</label>
</div>
<div class="col-md-3">
<select class="form-control hack" ng-model="mapping.CommandMappings[0].SourceType">
<option value="1">Event</option>
<option value="2">Variable</option>
</select>
</div>
<div class="col-md-5">
<select ng-options="field for field in foundFields.entityOptions" class="form-control" ng-if="mapping.CommandMappings[0].SourceType==1" ng-model="mapping.CommandMappings[0].ValueSource">
</select>
<select class="form-control" ng-if="mapping.CommandMappings[0].SourceType==2" ng-model="mapping.CommandMappings[0].ValueSource"
ng-options="variable.value as variable['name'] for variable in globals">
</select>
</div>
我用它就是这样
<tabset>
<tab heading="Command Mapping">
<div style="margin-top:5px">
<div class="form-group" ng-repeat="mapping in commandMappings">
<display-parameters></display-parameters>
</div>
</div>
</tab>
<tab heading="Variable Mapping">
</tab>
</tabset>
附加的是初始选择和保存之前对话框的图像,以及稍后打开以编辑所选选项。也是我绑定的数据结构的图像。 First Time Dialog opens, i make selections and later clicks save
Opens the dialog again but the bindings are gone, all reset to index 0
Inspects the object from console and find the binding is intact
我不知道为什么我在第二次打开对话框时松开了视图上的绑定,但它在模型上是正确的
答案 0 :(得分:0)
将数据保存到mapping.CommandMappings [0] .ValueSource中,然后关闭具有控制器的模态对话框,
当你再次尝试打开它时,模态对话框相关的控制器得到初始化
&安培;另外(mapping.CommandMappings [0] .ValueSource = {})初始化。