私はAngularが初めてで、モデルを変更するたびに、コントローラーを使用してビューのデータにその変更が反映されることを期待していました。
データモデルを作成するファクトリがあります
app.factory('Calendar', function($http){ return { months : [//月名の配列 //], カレンダー:関数(){ // 現在の月を構築する一連のもの カレンダーを返す; }、 アクティブな日付:関数(){ this.calendar()[0] を返します。 } } });
それから私のコントローラーで私は持っています
app.controller('CalendarCtrl',function($scope,Calendar){ $scope.calendar = Calendar.calendar(); $scope.setActiveDay = 関数(){ // これは、ユーザーがカレンダーでその日をクリックしたときのクリック イベントによってトリガーされます Calendar.activeDay = this.day; } }); app.controller('DayCtrl', function($scope,Calendar){ $scope.activeDay = Calendar.activeDay(); });
私が期待していたのは、setActiveDay
メソッドが変更Calendar.activeDay
され、ビューに正しい日付情報が自動的に入力されることでした。
this.day
in から出力するsetActiveDay
と、値が正しく更新されていることがわかりますが、DayCtrl
は変更を反映していません。
誰かが私にこれがなぜなのか説明できますか?? myCalendar.activeDay
がプリミティブ型ではないからですか? もしそうなら、どうすればこれを回避できますか?それとも、まったく別のものですか?