ng-options不绑定模态对话框

时间:2015-09-20 22:26:51

标签: angularjs angular-ui-bootstrap

我有一个模态对话框(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

我不知道为什么我在第二次打开对话框时松开了视图上的绑定,但它在模型上是正确的

1 个答案:

答案 0 :(得分:0)

将数据保存到mapping.CommandMappings [0] .ValueSource中,然后关闭具有控制器的模态对话框,

当你再次尝试打开它时,模态对话框相关的控制器得到初始化
&安培;另外(mapping.CommandMappings [0] .ValueSource = {})初始化。