2014-10-02 106 views
-3

工作 什么是错的不是工作角串的变化没有检测

var angulargap = angular.module("angulargap", []); 
angulargap.factory('cartService', function($rootScope,$http){  
    var fac ={ 
     message:"factory", 
     getCart:function(call){ 
      $http.post("/rpc.php", {app:"get_cart",pag:"cart"}) 
      .success(function(data, status, headers, config) { 
       fac.setMessage("success");  
      }).error(function(data, status, headers, config) { 

      }); 

     }, 
     setMessage:function(m){fac.message=m;} 
    } 
    return fac; 
}); 
angulargap.controller("iridium", function ($scope,cartService){  
    cartService.getCart(); 
    $scope.message=cartService.message; 
}); 

,而不是更新的数组一切变量字符串的变化呢? 感谢

+1

可以尝试并解释你的问题有点多..其很难知道你想达到的目标。 – Pogrindis 2014-10-02 08:32:48

+0

你是否用chrome调试过它?也许'fac.setMessage'是未定义的? – graphefruit 2014-10-02 08:32:59

回答

0

我解决它通过与对象

var angulargap = angular.module("angulargap", []); 
angulargap.factory('cartService', function($rootScope,$http){  
    var fac ={ 
     messages:{cartnum:"0"}, 
     getCart:function(call){ 
      $http.post("/rpc.php", {app:"get_cart",pag:"cart"}) 
      .success(function(data, status, headers, config) { 
       fac.setCounter("num from server");  
      }).error(function(data, status, headers, config) { 

      }); 

     }, 
     setCounter:function(m){fac.messages.cartnum=m;} 
    } 
    return fac; 
}); 
angulargap.controller("iridium", function ($scope,cartService){  
    cartService.getCart(); 
    $scope.messages=cartService.messages; 
}); 

现在一切正常改变字符串变量,我看到的结果在前端 有人可以向我解释为什么如果我使用字符串变量,它不起作用?

我明白了这样:

{{messages.cartnum}} 
0

替换该行

setMessage:function(m){fac.message=m;} 

setMessage:function(m){message=m;}