私は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.dayin から出力するsetActiveDayと、値が正しく更新されていることがわかりますが、DayCtrlは変更を反映していません。
誰かが私にこれがなぜなのか説明できますか?? myCalendar.activeDayがプリミティブ型ではないからですか? もしそうなら、どうすればこれを回避できますか?それとも、まったく別のものですか?