AngularJS нг-если вызывать функцию - PullRequest
0 голосов
/ 11 июня 2019

Я хочу использовать функцию вызова ng-if для получения текстовых данных, но я не знаю, почему ng-if не работает, и она печатает все текстовые данные. Пожалуйста помоги. Большое спасибо.

Я пытаюсь использовать только ng-if это работа

http://jsfiddle.net/grm7cy2x/1/

Это использование ng-if кода функции вызова

http://jsfiddle.net/g8p2x70f/51/

1 Ответ

0 голосов
/ 11 июня 2019

Причина в том, что то, что вы возвращаете из checkValidDataType, обрабатывается как строка, она больше не оценивается как кусок кода. Другими словами, вот как это выглядит:

< ... ng-if="'data.partment == 2 || data.partment == 3 '">

(обратите внимание на одинарные кавычки)

Чтобы понять это лучше, вы можете попробовать что-то вроде

< ... ng-if="'cat'">

Любая непустая строка имеет значение true в JavaScript, поэтому строки, которые вы возвращаете из своих функций, всегда возвращают true (точно так же, как строка 'cat', поэтому ng-if отображает все переключатели.

Чтобы решить эту проблему, вы можете написать свой код так:

<div ng-repeat="data in records">     
  <div ng-if="checkValidDataType(1, data)">       
    <input type="radio" name="{{data.name}}" value="{{data.value}}">
    {{data.text}}
  </div>
</div>
$scope.checkValidDataType = function(someValue, data){
     if(someValue == '1')
         return data.partment == 1 || data.partment == 2;
     else if(someValue == '2')
         return data.partment == 1 || data.partment == 3;
    else
        return data.partment == 2 || data.partment == 3;
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...