2013-05-30 96 views
2

我有一個下拉菜單和切換下拉菜單的可點擊元素。當用戶點擊下拉菜單中的列表項時,我想將該值添加到輸入框值。將範圍變量名解析爲範圍函數?

我有一個下拉菜單迭代了定義的次數來創建一個dropmenu列出增加的數字。

<!--input--> 
<input type="text" value="{{rooms}}"> 

<!--dropdown--> 
<ul role="menu"> 
    <li data-ng-repeat="i in getNumber(num_of_rooms)"> 
     <a href="javascript:void(0);" data-ng-click="addToDropDown($index)">{{$index+1}}</a> 
    </li> 
</ul> 



//This function simply returns an array so the dropdown menu repeats a defined number of times 
$scope.getNumber = function(n) { 
    return new Array(n); 
}; 


//I want this scope function to add the value to the input by updating a scope variable 
$scope.addToDropDown = function(scope_name, value){ 

    $scope.scope_name = value; 
}; 

----------- 

//This works but I'm defining a scope name which I would like to add dynamically as I have multiple dropdown menus 
$scope.addToDropDown = function(value){ 

    var val = value+1; 
    $scope.rooms = val; 
}; 

有沒有辦法給視圖本身的範圍變量賦一個新的值?

+0

你的問題是有點含糊和困難瞭解。你可以通過指定哪個範圍變量來分配一個值以及你想分配什麼值來改善它嗎? – callmekatootie

回答

4

這是你想要的嗎? http://plnkr.co/edit/Pew3KIoTy2fVp0tV3xv6?p=preview

給變量名的單擊處理字符串:

<a href="" ng-click="addToDropDown('rooms', $index)"> 
    {{ $index + 1 }} 
</a> 

只是指給定名稱的屬性在處理程序:

$scope.addToDropDown = function(scope_name, value) { 
    $scope[ scope_name ] = value; 
}; 
+0

謝謝你,這是一個更好的方式來做到這一點。 – Malcr001

+0

你先生是救命恩人! :-p – sksallaj

+0

Sanfrantastic! –