서버 컨트롤러에서 datacontext를 사용해야합니다.
datacontext는 여러 가지 방법으로 변경할 수 있습니다 (ajax 호출, 사용자 /보기, 서버 별).
datacontext의 데이터가 변경되면 datacontext를 사용하는 모든 컨트롤러에 통보해야합니다.Angularjs : 컨트롤러간에 관찰 가능한 데이터 공유
데이터 컨텍스트는 :
var userDataContext = { firstName: "John", lastName: "Doe" };
나는 여기
setTimeout(function() {
console.log("change firstname");
userContext.firstName= "Bart";
}, 3000);
에서는 setTimeout
로 모든 예에서 백엔드 변화를 시뮬레이션 잘 작동 녹아웃,의 바이올린 예이다.
http://jsfiddle.net/8ct0L1zu/4/
또한 각도 함께하려고 노력하지만, 부분적으로 작동합니다.
전체 개체를 컨트롤러로 전달하면 (참조 기준) 컨트롤러간에 변경이 이루어집니다.
javacript/backend에서 datacontext를 변경하면 내보기가 변경되지 않습니다.나는 완전한 개체가 아닌 컨트롤 범위에 firstname과 lastname 만있는 것을 선호합니다.
하지만이 경우 아무것도 작동하지 않습니다.
이유 : 우리 응용 프로그램에는 큰 개체 배열을 가진 많은 datacontext가있을 것입니다.http://jsfiddle.net/19xv3skn/1/
녹아웃와 각도
정말 그것이 작동되도록하려면 , 내가 사용
. datacontext에 대한 데이터 바인딩 및 녹아웃을위한 각도. 이 잘 작동하지만 정말이 솔루션을 좋아하지 않아.
http://jsfiddle.net/7chp5xLa/2/
각도에서 관찰 할 수있는 데이터 컨텍스트로 작업하는 것이 좋습니다 또는 더 좋은 방법이 있나요?
아이디어는 "데이터 연결 텍스트와보기간에 연결이 없음"입니다. ParentCtrl을 사용할 때 데이터가 특정보기에 연결됩니다. 내 데이터는 컨트롤러/뷰에서 사용할 준비가 된 ui에 대한 지식이 전혀 필요하지 않습니다. –
userContext가 자신의 라이프 사이클 밖에 있다는 것은 사실입니다. 각도는 더티 검사 (dirty checking)라고하는 기법을 사용하여 변수를 관찰합니다. 그래서 컨트롤러 내부에서만 변수로 작업 할 수 있습니다. 녹아웃은 Observable 패턴을 사용합니다. 어느 것이 나를 위해 더 잘 작동합니다. http://blog.nebithi.com/knockoutjs-vs-angularjs/ 나를위한 완벽한 해결책은 없을 것입니다 : s –
녹아웃 또는 AngularJ가 가장 적합한 지 여부는 참으로 귀하의 요구에 달려 있습니다. –