2014-01-11 50 views
0

我将AngularJS应用到项目中。

angular.module('xmpl.service', []). 
    value('objProduct', { 
      productName: 'ASUS', // this fiel name and value set on angular start!!!! 
      price: 0,   // this fiel name and value set on angular start!!!! 
      func1: function (setObjProduct) {    
       this.productName = setObjProduct.productName; 
       this.price = setObjProduct.price;       
      }, 
      func2: function (name) { 
       return this.productName + ' ' + name + '.'; 
      } 
    }). 
    value('objCustomer', { 
      info: function (name) { 
       this.name = name; 
      } 
    }); 
... 
var myApp = angular.module('xmpl', ['xmpl.service', 'xmpl.directive', 'xmpl.filter']). 
    run(function (objProduct, objCustomer) {    
      // I hope $.json request to MVC Controller in project will be here 
      // Object from response go to func1 or func2 

      // Some test object 
      var newObjProduct = { 
       productName: 'SAMSUNG', 
       price: 400 
      };    
      objProduct.func1(newObjProduct); 
     });  

function XmplController($scope, objProduct, objCustomer) {     
     $scope.greeting = function (value) { 
      return objCustomer.name + ' ' + value + ' ' + objProduct.productName; 
     } 

     $scope.varTest1 = objProduct.productName; 

     $scope.varFuncTest = function() { 
      return objProduct.price;    
     }   
    } 

我尝试向MVC控制器发送$ .ajax请求,并从响应中获取一些对象。有任何方法来设置响应对象的字段,并设置名称和值而不是'productName'和'price'。在BLL中,所有对象都可以改变,我试图从$ .ajax响应中获得一些对象,并将它设置为角度。我应该如何更改代码?

回答

0

你可以做这样的:

func1: function (setObjProduct) { 
     for (var property in setObjProduct) { 
      if (setObjProduct.hasOwnProperty(property)) { 
       this[property] = setObjProduct[property]; 
      } 
     } 
    }   

这是标准的JavaScript,没有什么特定的角度。