Я искал и нашел несколько статей, посвященных теме «Как назначить переменную области действия значению тега html-атрибута».См .:
https://docs.angularjs.org/guide/interpolation
Как назначить значение переменной angularjs атрибуту html-элемента, например атрибуту имени входного элемента
Inмой контроллер Я определил следующее:
$scope.reportFields = "{'summary.imageID':'Image ID' }";
В моем HTML-документе я определил следующее:
<a href="{{reportFields}}">A TEST EXAMPLE</a>
<button ng-json-eport-excel title="CSV" class="bt btn-md btn-success" separator="," data="mdcData" report-fields="{{reportFields}}" filename="'mySearch'">
когда я перенесу страницу в браузер, я обнаружу, что страница сообщаетсинтаксическая ошибка синтаксического анализа при определении {{reportFields}} для моего элемента кнопки.
Error: [$parse:syntax] Syntax error: Token '{' invlaid key at column 2 of the expression [{{reportFields}}] starting at [reportFields}}].
, если я отказываюсь использовать переменную и жестко кодирую значение, как в:
<button ng-json-eport-excel title="CSV" class="bt btn-md btn-success" separator="," data="mdcData" report-fields="{'summary.imageID':'Image ID' }" filename="'mySearch'">
, оно компилируется иработает правильно.Если я добавлю 'ng-if', он будет правильно скомпилирован, как показано ниже:
<button ng-json-eport-excel title="CSV" class="bt btn-md btn-success" separator="," data="mdcData" report-fields="{{reportFields}}" ng-if="reportFields.length > 0" filename="'mySearch'">
Кроме того, когда я проверяю сгенерированный HTML-код с помощью инспектора, я вижу, что для тега 'ahref' эта интерполяция angularjs перевела'reportFields' to '"{' summary.imageID ':' Image ID '}"' для тега ahref, но он не перевел значение для тега полей отчета, указанного на кнопке.Я также пытался:
ng-if="1==1" filename="'mySearch'">
для моего выражения, которое всегда должно быть верным.Мои вопросы (и я новичок в angularjs, и мне нужна помощь в понимании):
- Почему я получаю ошибку синтаксического разбора при использовании двойных углов currly со вторым элементом HTML (кнопкой), но непервый (href) ??
- Почему ошибка синтаксического анализа исчезает с оператором 'ng-if'
Почему интерполяция не происходит в случае
report-fields="{{reportFields}}"
, но это прекрасно для:
<a href="{{reportFields}}">A TEST EXAMPLE</a>
Спасибо за вашу помощь в продвинутом.Пит