서비스/팩토리에서 컨트롤러로의 바인딩 변수
1개 이상의 컨트롤러에 의해 사용되는 변수가 서비스에 의해 변경되었습니다.이 경우 이 변수를 메모리에 저장하고 컨트롤러 간에 공유하는 서비스를 구축했습니다.
문제는 변수가 변경될 때마다 컨트롤러의 변수가 실시간으로 업데이트되지 않는다는 것입니다.
내가 이 바이올린을 만든 건 도와드리기 위해서야http://jsfiddle.net/ncyVK/
--- 주의:{{countService}}
또는{{countFactory}}
카운트 값을 증가시켜도 업데이트되지 않습니다.
컨트롤러에서 서비스/공장 변수를 $scope.variable에 바인드하려면 어떻게 해야 합니까?내가 뭘 잘못하고 있지?
변수를 바인딩할 수 없습니다.단, 이 변수를 포함하는 변수접근자 또는 오브젝트를 바인드할 수 있습니다.여기 고정된 jsfiddle이 있습니다.
기본적으로 현재 값을 반환하거나 보유할 수 있는 무언가를 스코프에 전달해야 합니다.예.
공장 출하 시:
app.factory('testFactory', function(){
var countF = 1;
return {
getCount : function () {
return countF; //we need some way to access actual variable value
},
incrementCount:function(){
countF++;
return countF;
}
}
});
컨트롤러:
function FactoryCtrl($scope, testService, testFactory)
{
$scope.countFactory = testFactory.getCount; //passing getter to the view
$scope.clickF = function () {
$scope.countF = testFactory.incrementCount();
};
}
표시:
<div ng-controller="FactoryCtrl">
<!-- this is now updated, note how count factory is called -->
<p> This is my countFactory variable : {{countFactory()}}</p>
<p> This is my updated after click variable : {{countF}}</p>
<button ng-click="clickF()" >Factory ++ </button>
</div>
서비스의 데이터를 묶는 것은 좋지 않지만, 더 이상 필요하시면 다음 두 가지 방법을 제안합니다.
1) 해당 데이터를 서비스 내부에 보관하지 마십시오.데이터를 컨트롤러에 삽입하면 바인딩에 문제가 없습니다.
2) AngularJs 이벤트 기능을 사용할 수 있습니다.이 이벤트를 통해 에 데이터를 전송할 수도 있습니다.
예를 들어 더 필요한 사항이 있으시면 이 기사를 참고하시기 바랍니다.
http://www.w3docs.com/snippets/angularjs/bind-value-between-service-and-controller-directive.html
언급URL : https://stackoverflow.com/questions/16023451/binding-variables-from-service-factory-to-controllers
'code' 카테고리의 다른 글
주의: ob_end_flush(): zlib 출력 압축(1)의 버퍼를 전송하지 못했습니다. (0) | 2023.02.12 |
---|---|
AngularJs에서 ng-repeat으로 필터링(키, 값)하는 방법 (0) | 2023.02.12 |
잭슨이 Spring Boot에서 ZonedDateTime을 잘못 시리얼화함 (0) | 2023.02.12 |
스프링 부트 1.3.0M1에서1.3.0으로 전환 시 "NoClassDefFoundError: GenericApplicationListener"M2 (0) | 2023.02.12 |
Rails는 빈 어레이를 요청 매개 변수에서 nil로 변환합니다. (0) | 2023.02.12 |