사용자 지정 지시문의 컨트롤러에서 작동하지 않는 팩토리 개체 확인

sam1993

Angular.js를 사용하여 기본 전자 상거래 인터페이스를 설정하고 있습니다.

기본적으로 장바구니에 추가 버튼을 클릭하면 메인 탐색 바의 장바구니에 추가 된 div가 팝업되도록하고 싶습니다. 이것이 mainNavbar 지시어 컨트롤러에서 click1 변수를 사용하여 수행되는 작업입니다.

사용자 지정 지시문으로 사용되는 상단 탐색 모음에 대한 컨트롤러가 있습니다.

app.directive('mainNavbar',function(){
return {
restrict:'E',
templateUrl:'partials/nav.html',
controller:'navController',
link:function(scope,element)
{
   scope.$watch('click1',function(value){
   if(value==1)
   {
      $('#cart').css('display','block');
   }
   else 
   {
      $('#cart').css('display','none');
   }
   });
 }
};
});

app.controller("navController",function($scope,thefactory,$q,$routeParams)
{
    $scope.count=0;
    $scope.click1=0;
    $scope.cart_amt=0;
    $scope.cartdata=[];
    $scope.showcrt=function()
    {
        $scope.cart_amt=thefactory.cart_amt;
        var i=0;
        while(i<thefactory.prods.length)
        {
            $scope.cartdata[i]=thefactory.prods[i];
            i++;  
         }
         thefactory.setcartval(1);
         $scope.click1=1;
     };
    $scope.hidecart=function()
    {
        $scope.click1=0;
        thefactory.setcartval(0);
    };
    $scope.$watch('thefactory', function (newVal,oldVal,scope)
    {
       if (typeof newVal == 'undefined') {

       }
       else
       {
          if(newVal.getcartval()==1)
          {
              scope.showcrt();
          }
          if(newVal.numcartelem>oldVal.numcartelem)
          {
              scope.count=newVal;
          }
      }
   });
  });

공장

app.factory('thefactory',function($http,$q)
{
   var factory={};
   factory.products=[];
   factory.cart_amt=0;
   factory.prods=[];
   factory.numcartelem=0;
   var showcart=0;
   factory.getcartval=function()
   {
      return showcart;
   };
   factory.setcartval=function(a)
   {
      showcart=a;
   };
   factory.addprod2cart=function(a,b,c,d)
   {
      factory.cart_amt+=c;
      factory.numcartelem++;
      factory.prods.push({'heading':a,'seller':b,'price':c,'img':d});
   };
   return factory;
});

카트에 제품을 추가하기위한 또 다른 컨트롤러.

app.controller("productController", function($scope,thefactory,$q,$routeParams)
{
    $scope.data=[];
    $scope.product_id = $routeParams.productId;
    $scope.data=thefactory.products[$scope.product_id-1];
    $scope.addcart=function(a,b,c,d)
    {
       console.log("Add to cart called!");
       thefactory.addprod2cart(a,b,c,d);
    };
});

이제 문제는 팩토리 addprod2cart 함수를 호출하고 팩토리 객체를 변경해야하는 productController에서 장바구니에 추가 기능을 호출하더라도 팩토리 객체의 시계가 navController에서 호출되지 않는다는 것입니다. 내 탐색 모음에서 카트 버튼을 클릭하면 업데이트 된 개체가 표시되므로 팩토리 개체가 수정 된 것입니다. 그러나 그 물체의 시계는 작동하지 않습니다. 동일한 솔루션을 제안하십시오. 감사!

아룬 P 조니

문제는 시계 표현이라고 생각합니다.

thefactory범위에 추가해보세요

$scope.thefactory = thefactory;
$scope.$watch('thefactory', function (newVal,oldVal,scope) {}, true);

또는

$scope.$watch(function(){
    return thefactory;
}, function (newVal,oldVal,scope) { }, true);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ListBox wpf에서 상속 된 확인 된 개체 논리가있는 사용자 지정 컨트롤

분류에서Dev

사용자 지정 인증 공급자에서 컨트롤러로 사용자 지정 개체를 전달하는 방법은 무엇입니까?

분류에서Dev

페이지 개체 팩토리에서 여러 ID를 사용하는 방법

분류에서Dev

사용자 지정 지시문에서 개체 배열의 ng-repeat가 작동하지 않습니다.

분류에서Dev

사용자 정의 개체에 대해 작동하지 않는 작업 설정

분류에서Dev

컨트롤러에서 AngularJS의 사용자 지정 지시문으로 배열 개체 전달

분류에서Dev

AngularJS 팩토리 객체가 컨트롤러 및 뷰에서 업데이트되지 않음

분류에서Dev

하나의 AngularJS 파일에있는 컨트롤러 (서비스, 팩토리, 지시문) 수

분류에서Dev

각도 컨트롤러에서 onclick을 사용할 때 확인란이 작동하지 않습니다.

분류에서Dev

Jackson deserialization : 사용자 지정 개체 팩토리

분류에서Dev

Angularjs 팩토리 인 젝트가 작동하지 않습니다.

분류에서Dev

Angularjs 사용자 지정 지시문에서 컨트롤러 분리

분류에서Dev

쿼리 문자열에 전달되는 내용에 영향을받지 않는 확장 / 플러그인에 대한 고정 컨트롤러 / 액션 설정

분류에서Dev

컨트롤러에서 사용하기 위해 Angular 지시문의 개체에 새 속성 설정

분류에서Dev

사용자 지정 리소스의 개인 메서드가 작동하지 않습니다.

분류에서Dev

사용자 지정 개체 배열에 특정 날짜의 개체가 포함되어 있는지 확인

분류에서Dev

컨트롤러 및 인터페이스에서 사용할 때 @Cacheable이 작동하지 않는 이유

분류에서Dev

Progress 개체를 사용자 지정 이벤트와 결합했으며 작동 이유는 확실하지 않지만 작동합니다.

분류에서Dev

route () 도우미 함수는 laravel의 리소스 컨트롤러에서 작동하지 않지만 url ()은 작동합니다. 정상인가요?

분류에서Dev

typeof를 사용하여 작동하지 않는 개체 속성 확인

분류에서Dev

사용자 정의 개체 팩토리

분류에서Dev

func == from equatable 프로토콜은 사용자 정의 개체에 대해 작동하지 않습니다.

분류에서Dev

사용자 지정 컨트롤 DLL에서 FindResource가 작동하지 않음

분류에서Dev

사용자 지정 컨트롤의 바인딩이 작동하지 않는 이유는 무엇입니까?

분류에서Dev

UITapGestureRecognizer가 사용자 정의 클래스 내에서 작동하지 않음 (뷰 컨트롤러가 아님)

분류에서Dev

Firefox에서 사용자 정의 확인란이 작동하지 않습니다.

분류에서Dev

내 사용자 지정 속성 지시문에서 데이터 바인딩이 작동하지 않는 이유

분류에서Dev

SIlverstripe에서 작동하지 않는 컨트롤러의 동작

분류에서Dev

C # 사용자 지정 클래스를 사용하여 웹 사용자 정의 컨트롤을 만들려고하는데 개체 오류 인스턴스로 설정되지 않은 개체가 표시됩니다.

Related 관련 기사

  1. 1

    ListBox wpf에서 상속 된 확인 된 개체 논리가있는 사용자 지정 컨트롤

  2. 2

    사용자 지정 인증 공급자에서 컨트롤러로 사용자 지정 개체를 전달하는 방법은 무엇입니까?

  3. 3

    페이지 개체 팩토리에서 여러 ID를 사용하는 방법

  4. 4

    사용자 지정 지시문에서 개체 배열의 ng-repeat가 작동하지 않습니다.

  5. 5

    사용자 정의 개체에 대해 작동하지 않는 작업 설정

  6. 6

    컨트롤러에서 AngularJS의 사용자 지정 지시문으로 배열 개체 전달

  7. 7

    AngularJS 팩토리 객체가 컨트롤러 및 뷰에서 업데이트되지 않음

  8. 8

    하나의 AngularJS 파일에있는 컨트롤러 (서비스, 팩토리, 지시문) 수

  9. 9

    각도 컨트롤러에서 onclick을 사용할 때 확인란이 작동하지 않습니다.

  10. 10

    Jackson deserialization : 사용자 지정 개체 팩토리

  11. 11

    Angularjs 팩토리 인 젝트가 작동하지 않습니다.

  12. 12

    Angularjs 사용자 지정 지시문에서 컨트롤러 분리

  13. 13

    쿼리 문자열에 전달되는 내용에 영향을받지 않는 확장 / 플러그인에 대한 고정 컨트롤러 / 액션 설정

  14. 14

    컨트롤러에서 사용하기 위해 Angular 지시문의 개체에 새 속성 설정

  15. 15

    사용자 지정 리소스의 개인 메서드가 작동하지 않습니다.

  16. 16

    사용자 지정 개체 배열에 특정 날짜의 개체가 포함되어 있는지 확인

  17. 17

    컨트롤러 및 인터페이스에서 사용할 때 @Cacheable이 작동하지 않는 이유

  18. 18

    Progress 개체를 사용자 지정 이벤트와 결합했으며 작동 이유는 확실하지 않지만 작동합니다.

  19. 19

    route () 도우미 함수는 laravel의 리소스 컨트롤러에서 작동하지 않지만 url ()은 작동합니다. 정상인가요?

  20. 20

    typeof를 사용하여 작동하지 않는 개체 속성 확인

  21. 21

    사용자 정의 개체 팩토리

  22. 22

    func == from equatable 프로토콜은 사용자 정의 개체에 대해 작동하지 않습니다.

  23. 23

    사용자 지정 컨트롤 DLL에서 FindResource가 작동하지 않음

  24. 24

    사용자 지정 컨트롤의 바인딩이 작동하지 않는 이유는 무엇입니까?

  25. 25

    UITapGestureRecognizer가 사용자 정의 클래스 내에서 작동하지 않음 (뷰 컨트롤러가 아님)

  26. 26

    Firefox에서 사용자 정의 확인란이 작동하지 않습니다.

  27. 27

    내 사용자 지정 속성 지시문에서 데이터 바인딩이 작동하지 않는 이유

  28. 28

    SIlverstripe에서 작동하지 않는 컨트롤러의 동작

  29. 29

    C # 사용자 지정 클래스를 사용하여 웹 사용자 정의 컨트롤을 만들려고하는데 개체 오류 인스턴스로 설정되지 않은 개체가 표시됩니다.

뜨겁다태그

보관