2016-11-23 19 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>