2016-11-23 32 views
-1

我无法改变我的控制器中select2内的选定值。select2的值在角度模型上不改变

<select id="drptabselect" ng-model="selectedTab" class="form-control select2" 
ng-options="x.Title for x in tabnames"> 
</select> 

我有Ajax调用其中data.Tab返回如下

$scope.selectedTab = data.Tab; 

如下

"Tab": { 
"$id": "2", 
"ID": 4, 
"Title": "FirstTab" 
}, 

阿贾克斯标签的结果,如果我尝试打印

<span>{{selectedTab}}</span> 

它在赋值之后给出期望值作为

{"$id": "2","ID": "4","Title": "FirstTab"} 

不幸的是没有被施加到SELECT2下拉相同。那么它仍然显示最后选定的值。 如何填充下拉框中的值?

我的$ scope.tabnames看起来像这样

[{"$id": "1", 
"ID": 4, 
"Title": "FirstTab" 
}, 
{"$id": "2", 
"ID": 5, 
"Title": "Secondtab" 
}, 
{"$id": "3", 
"ID": 6, 
"Title": "Thirdtab" 
}] 

我使用常规选择2库(不angualr-UI)

+0

您可以复制上[plunker(http://plnkr.co/) –

+0

https://plnkr.co/edit/pJQBfQQ5cA9msc6fXErp 这里选择2的问题是不工作 但同样的问题是存在的对于选择 希望如果这可以修复,它会给我的解决方案的答案.. 基本上填充控制器内的选择值 – user3815413

+0

嗨,请检查我的答案是否可以帮助你。 –

回答

1

一个角JS的陷阱与ngModel工作时是要使用dot notation进一步一级(另请参阅this explanation)。尝试:

$scope.controllerData.selectedTab = data.Tab; 
$scope.controllerData.tabnames = ... 

controllerData只是一个任意名称,您可以选择任何适合您的需要。

另外,是否有一个特殊的原因是tabnames是一个单一的条目和包含对象的数组?

+0

嗨基督教博纳托,感谢您的提示, 请您详细说明controllerData? 我标识符selectedTab是申报DAT根水平 $ scope.selectedTab = [] 为什么tabnames是数组, 这是怎么阿贾克斯性反应,在文字输入的是休息 controlls数据更新工作完全正常与像 声明$ scope.Title =数据。标题; 唯一的问题是选择2下拉, { “标题”: “Usersname”, “控件名称”: “txtUsersname”, “标签”:{ “的$ id”: “3”, “ID”: 4, “标题”:“FirstTab” }, } – user3815413

+0

这里选择2不工作,但同样的问题是有选择的希望,如果这可以是固定的,它会给答案,我的解决方案..基本上填充内部控制器选择值 - – user3815413

+0

plunker在这里:plnkr.co/edit/pJQBfQQ5cA9msc6fXErp – user3815413

0

您在select2选项卡之外的控制器定义,我认为这是问题。

<!DOCTYPE html> 
<html> 

    <head> 
    <link data-require="[email protected]" data-semver="4.0.0" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.css" /> 

    <script data-require="[email protected]" data-semver="3.0.0" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.js"></script> 
    <link rel="stylesheet" href="style.css" /> 
    <script src="angular.min.js"></script> 
    <script src="script.js"></script> 
    <script src="select2.full.js"></script> 


    </head> 

    <body ng-app="myApp" ng-controller="myCtrl"> 
    <h1>Hello Plunker!</h1> 
    <div> 
{{message}} 
        <br /> 
     <select id="drptabselect" ng-model="selectedTab" class="form-control select2" ng-options="x.Title for x in tabnames"></select> 
    </div> 
     <input type="button" ng-click="setselect()" value="set select2"> 
    </body> 



{{selectedTab}} 

</html>