我想编写一个通用方法来设置将不同模型作为变量传递给ng-click上的函数,谷歌搜索了很多,但没有发现任何有用的东西,这是我的代码
<span class="fa fa-star " ng-click="setClassJsn(1, 'present')" id='present'></span>
<span class="fa fa-star " ng-click="setClassJsn(1, 'clarity')" id='present'></span>
<input type="text" ng-model="present" />
<input type="text" ng-model="clarity" />
我想将“ e”转换为模型名称并进行相应设置。
$scope.setClassJsn = function(value, e) {
alert("hai this is setting class");
console.log(e);
$scope."e" = value;
};
请注意,我知道$scope."e" = value;
这句话是错误的,只是为了理解我给出的引号。
答案 0 :(得分:1)
您可以尝试$scope[e] = value
。
angular.module("app", []).controller("ctrl", function($scope) {
$scope.setClassJsn = function(value, e) {
console.log(e);
$scope[e] = value;
}
$scope.displayClassJsn = function(e) {
console.log($scope[e]);
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
<span class="fa fa-star " ng-click="setClassJsn(1,'present')" id='present'>Span 1</span>
<span class="fa fa-star " ng-click="setClassJsn(1,'clarity')" id='present'>Span 2</span>
<input type="text" ng-model="present" />
<input type="text" ng-model="clarity" />
<br/>
<button ng-click="displayClassJsn('present')">Show 'present'</button>
<button ng-click="displayClassJsn('clarity')">Show 'clarity'</button>
</div>