2016-03-24 9 views
0

私はAngularJsの最初の措置をとっているだけで、私が持っている結果の理由を理解するのに役立つかもしれないという質問があります。私は「人」それは(H2内)が表示されます挨拶の情報を書いた場合、それは「偽」である必要がありhttps://jsbin.com/fososikosi/edit?html,js,output

入力ボックス内側: ここjsBinが、それは単純に理解できるようにするためのリンクです。そして、「helloと言う」をクリックすると、H2の内容が更新されます。ここまでは順調ですね。

代わりに入力の中に "person"と書くのは "person.name"です。 明らかに、名前はParentControllerの "person"に関連付けられていないので、表示されません。 しかし、 "say hello"をクリックすると、その情報はH2で更新されません(空白のままです)。私の質問は、なぜですか?なぜなら、私が消去して再び "person.name"を書き込むと、正しく表示されるからです。そして、私はそれが私が予期していたように更新するにはどうしたらよいでしょうか?

私ははっきりしていた希望、ありがとう=)

答えて

0

これは時計の問題と同じくらいのスコープの問題ではないようです。 h2要素を変更する唯一の方法は、parsedExprが変更された場合です。ただし、それは$watchの内部でのみ発生します。 "Say Hello"をクリックするとperson.nameですが、時計はexprに基づいており、exprは変更されていないため時計は起動せず、h2要素は更新されません。これを修正するには、何らかの形で時計を起動するか、ウォッチ内のコードを(親コントローラ上で)機能に移動してsayHello()から呼び出します。

関連する問題