Общий метод для установки моделей, передаваемых в качестве аргументов, Angular JS - PullRequest
0 голосов
/ 06 марта 2019

Я хотел написать универсальный метод для установки различных моделей, передаваемых в функцию в качестве переменной в 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 Ответ

1 голос
/ 06 марта 2019

Можно попробовать $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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...