11

anglejsコード:

app.directive('test', function(){
  return {
    restrict: 'A',
    scope: {
      myId: '@'
    },
    link: function(scope) {
      alert(scope.myId);
    }
  }
});

scope: { myId: '@' }ディレクティブにが含まれていることがわかります。

そしてhtmlコード:

<div test my-id='123'></div>

を定義したことがわかりますmy-id='123'

ディレクティブが警告することを願っています123が、警告しundefinedました。私の間違いはどこにありますか?

PS:ここにライブデモがあります:http://plnkr.co/edit/sL69NqWC70Qfwav5feP2?p = Preview

4

1 に答える 1

11

補間された属性の適切な値を取得するには、属性を付ける必要があります( http://docs.angularjs.org/guide/directive$observeの「属性」セクションで説明されています)。

これが機能するプランクです: http://plnkr.co/edit/NtIHmdoO7IAEwE74ifB5?p = Preview

これは基本的にangularjsの複製です。ディレクティブリンク関数のloggingscopeプロパティはundefinedを表示しますPR https://github.com/angular/angular.js/pull/1555が最近マージさ$observeれ、AngularJSの将来のバージョンでは使用せずにプランカーが機能することにも注意してください。

-

問題のデモは最新バージョン1.1.3で動作します。試してみることができます(そしてangularjsのURLを1.1.3に変更します)。

于 2013-03-05T11:17:50.903 に答える