2017-01-31 6 views
1

私はここで3つのボタンを$scope. -> q <-qとしたいと思います。どうすればそれを達成できますか?自然の中で$スコープがあるので、これはとても任意の回避策を提案しないでください

var app = angular.module('myApp', []); 
 
app.controller('myCtrl', function($scope) { 
 
    $scope.name = function(q){ 
 
    $scope.a = "John Doe "; // $scope.q how to make q varibale 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
Name: <button ng-click="name('a')" ng-model="name">this is a</button> 
 
<button ng-click="name('b')" ng-model="name">this is b</button> 
 
<button ng-click="name('c')" ng-model="name">this is c</button> 
 
{{a}} via a<br> 
 
{{b}} via b<br> 
 
{{c}} via c<br> 
 
</div>

答えて

4

私の実際の問題は、変数としてqを作るに基づいており、単にテストコードであるだけでスコープへの鍵としてのqを追加しますオブジェクト

var app = angular.module('myApp', []); 
 
app.controller('myCtrl', function($scope) { 
 
    $scope.name = function(q){ 
 
    $scope[q] = "John Doe "; // $scope.q how to make q varibale 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
Name: <button ng-click="name('a')" ng-model="name">this is a</button> 
 
<button ng-click="name('b')" ng-model="name">this is b</button> 
 
<button ng-click="name('c')" ng-model="name">this is c</button> 
 
{{a}} via a<br> 
 
{{b}} via b<br> 
 
{{c}} via c<br> 
 
</div>

+0

は、これは本当に便利ですが$のscope.bが$で、なぜ値が設定された後というこの問題がありますscope.aはまだ存在しますか?どのように私はそれをバイパスすることができます – sam

+0

割り当てられたjs変数の性質の性質は、メモリまで –

+0

がそれが起こるための回避策はありませんそれを保持する? – sam

1

var app = angular.module('myApp', []); 
 
app.controller('myCtrl', function($scope) { 
 
    $scope.name = function(q){ 
 
    $scope[q] = "John Doe "+ q; // $scope.q how to make q varibale 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
Name: <button ng-click="name('a')" ng-model="name">this is a</button> 
 
<button ng-click="name('b')" ng-model="name">this is b</button> 
 
<button ng-click="name('c')" ng-model="name">this is c</button> 
 
{{a}} via a<br> 
 
{{b}} via b<br> 
 
{{c}} via c<br> 
 
</div>

0

$スコープBeause $スコープへの鍵は、オブジェクトであるとしてだけQを追加します。 HTMLで

コントローラ

var app = angular.module('myApp', []); 
app.controller('ctrl', function($scope) { 
    $scope.name = function(q){ 
    $scope[q] = "Sam"; // now $scope.q will be a varriable 
    } 
}); 

: - - : このコードを試してみてください

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script> 
<div ng-app="myApp" ng-controller="ctrl"> 
Name: <button ng-click="name('a')" ng-model="name">this is a</button> 
<button ng-click="name('b')" ng-model="name">this is b</button> 
<button ng-click="name('c')" ng-model="name">this is c</button> 
{{a}} via a<br> 
{{b}} via b<br> 
{{c}} via c<br> 
</div> 
関連する問題