设置作为参数传递的模型的通用方法,Angular JS

时间:2019-03-06 09:17:46

标签: angularjs

我想编写一个通用方法来设置将不同模型作为变量传递给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;这句话是错误的,只是为了理解我给出的引号。

1 个答案:

答案 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>