2017-02-17 3 views
0

Мне нужна помощь в попытке привязать следующую переменную к атрибуту HTML с помощью Angular JS. В моем файле контроллера у меня есть этотУгловое js привязка к атрибуту title

controller.js

$scope.errorDialog = function(errorTitle, errorMessage){ 
     $scope.errorTitle = errorTitle; 
     $scope.errorMessage = errorMessage; 
     $("#dialog-confirm").dialog('open'); 
} 

параметры errorTitle и ErrorMessage оба установлены в другой функции.

В моем HTML файл у меня есть это окно сообщения об ошибке (с помощью Jquery UI)

abc.html

<div title="{{errorTitle}}" id="dialog-confirm" > 
     <p><span class="ui-icon ui-icon-alert" style="float:left; margin:12px 12px 20px 0;"></span>{{errorMessage}}</p> 
</div> 

По какой-то причине не отображается название. Я попытался изменить его на ng-attr-title = "{{errorTitle}}", но это тоже не сработает. Я также попытался использовать функцию в атрибуте title и вернуть значение errorTitle, но это тоже не работает.

+0

Возможный дубликат [Как заставить AngularJS связываться с атрибутом title тега A?] (Http://stackoverflow.com/questions/18230868/how-do-you-get-angularjs-to-bind-to-the-title -attribute-of-an-a-tag) – Canastro

+0

Можете ли вы показать еще какой-нибудь код? специально, как вы внедрили окно сообщения jQuery UI. –

+0

@Canastro я прошел через это сообщение, прежде чем делать это. Я уже пробовал ng-attr-title, но он все равно не работал – NimazSheik

ответ

0

я вижу две возможные проблемы здесь:

  1. Вы уверены, что вы делите $ объем контроллера с помощью диалога?

Если div, создающий ваш диалог, недоступен вашим контроллером, что означает, что он не является узлом DOM в поддереве дочерних элементов корневого элемента вашего контроллера, он не отображает свойства (и не даст никаких ошибок)

  1. Где вы называете $ scope.errorDialog?

Если вы используете этот вызов за пределами цикла $ digest, вы можете решить эту проблему, вызвав $scope.$apply после установки свойств. Это будет не самое лучшее решение, хотя, было бы лучше, чтобы обернуть вызов этой функции следующим образом

$scope.$apply(function() { 
    $scope.errorDialog('title', 'message'); 
}) 

Это позволит AngularJS в конечном счете перехватывать ошибки произошло во время выполнения $scope.errorDialog

+0

$ scope.errorDialog вызывается из другой функции в файле controller.js. Функция errorDialog вызывается правильно, так как отображаются данные errorMessage. Но я не могу динамически установить атрибут title, используя AngularJs в файле index.html. – NimazSheik

+0

. Что я действительно хочу сделать, так это динамически отображать атрибут title в поле errorDialog – NimazSheik

Смежные вопросы