Как использовать hasOwnProperty с директивой AngularJS `attrs` - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть директива с именем ip-abc, которая используется для проверки входных значений полей и преобразования в значения в формате доллара.У меня есть условие, при котором, если у нас будет значение «0», я преобразую его в $ 0.

ipabc.js

var filterFunc = function (value) {
    if(value == '0'){
    if(attrs.hasOwnProperty('ipZeroDollar')){
       var currencyValue = $filter('currency')(value);
       currencyValue = currencyValue.toString();
       return currencyValue.replace('.00','');
    } 
}

Проблема, с которой я сталкиваюсь, заключается в том, как я могу установить ipZeroDollar = true в HTML.На данный момент (attrs.hasOwnProperty('ipZeroDollar')) идет как false.

<div ng-class = {'//something'}
  <input type="tel" name="amount" class="form-control" ng 
   model="Data.Amount" maxlength="15" required ip-abc/>
</div>

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Проблема, с которой я сталкиваюсь, заключается в том, как я могу установить ipZeroDollar = true в HTML.На данный момент (attrs.hasOwnProperty('ipZeroDollar')) становится ложным.

camelCase необходимо нормализовать до кебаб-кейс в HTML:

<input type="tel" name="amount" class="form-control"
       ng-model="Data.Amount" maxlength="15" required
       ip-abc  ip-zero-dollar />

Для получения дополнительной информации см.

ДЕМО

angular.module("app",[])
.directive("ipAbc", function() {
    return {link: postLink};
    function postLink(scope,elem,attrs) {
      var hasIpZeroDollar = attrs.hasOwnProperty("ipZeroDollar");
      console.log("hasIpZeroDollar",hasIpZeroDollar);
    }
})
<script src="//unpkg.com/angular/angular.js"></script>
<body ng-app="app"
    <input type="tel" name="amount" class="form-control"
           ng-model="Data.Amount" maxlength="15" required
           ip-abc ip-zero-dollar />
</body>
0 голосов
/ 28 декабря 2018

Вот как вы используете hasOwnProperty ().

let obj = {color: 'yellow'}
obj.hasOwnProperty('color') // returns true

Кажется, вы хотите вызвать hasOwnProperty() на Data, так как это выглядит как объект, и именно там вы находитесьполучать сумму.

...