2017-02-17 114 views
0

我需要幫助試圖將以下變量綁定到使用Angular JS的HTML屬性。在我的控制文件,我有這個角度js綁定標題屬性

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綁定到A標籤的title屬性?](http://stackoverflow.com/questions/18230868/how-do-you-get-angularjs-to-bind-to-the-title -attribute-of-an-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文件中的另一個函數調用的。自顯示errorMessage數據以來,errorDialog函數被正確調用。但我無法在index.html文件中使用AngularJs動態設置title屬性 – NimazSheik

+0

我真正想要做的是在errorDialog框中動態顯示title屬性 – NimazSheik