2017-02-17 11 views
0

Angular JSを使用してHTML属性に次の変数をバインドしようとすると助けが必要です。私のコントローラファイルでは、私はこのタイトル属性のAngular jsバインディング

controller.js

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

を持っerrorTitleし、ErrorMessageのパラメータは、両方の別の関数に設定されています。私のHTMLファイルに

私は(jQueryのUIを使用して)このエラーメッセージボックスを持つ

<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> 

abc.htmlタイトルが表示されていないいくつかの理由。私は ng-attr-title = "{{errorTitle}}"に変更しようとしましたが、どちらも動作しません。また、title属性で関数を使用してerrorTitleの値を返そうとしましたが、それはどちらかといえないようです。

+0

可能な複製を実行中に起こりました[AngularJSはAタグのタイトル属性にどのようにバインドするのですか?](http://stackoverflow.com/questions/18230868/how-do-you-get-angularjs-to-bind-to-the-title -attribute-of-a-tag) – Canastro

+0

もっとコードを表示できますか?特別にあなたはjQueryのUIメッセージボックスを実装しました。 –

+0

@Canastro私はこれを行う前にそのポストを通過しました。私はすでにng-attr-titleを試しましたが、それでも動作しませんでした – NimazSheik

答えて

0

私はここ2潜在的な問題を見ることができます:

  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を使用してタイトル属性を設定することはできません – NimazSheik

+0

私が本当にやりたいのは、errorDialogボックスにタイトル属性を動的に表示することです – NimazSheik

関連する問題