2015-12-10 22 views
0

這AngularJS代碼工作完美:有趣的事情scope.lastLessOne

scope.last = {name:null, list:[]}; 
     scope.llOne = {name:null, list:[]}; 
     scope.first = {name:null, list: []}; 
     scope.listNodes = []; 

     //Eventos vista 
     scope.expandNode = function (node){ 

      if ((!scope.last.name) && (!scope.llOne.name) && (!scope.first.name)){ 
       scope.llOne.name = node.column0; 
       scope.llOne.list = scope.listNodes; 
      } else if ((!scope.last.name) && (!scope.first.name)){ 
       scope.last.name = node.column0; 
       scope.last.list = scope.listNodes; 
      } else if (!scope.first.name) { 
       scope.first.name = scope.llOne.name; 
       scope.first.list = scope.llOne.list; 
       scope.llOne.name = scope.last.name; 
       scope.llOne.list = scope.last.list; 
       scope.last.name = node.column0; 
       scope.last.list = scope.listNodes; 
      } else { 
       scope.llOne.name = scope.last.name; 
       scope.llOne.list = scope.last.list; 
       scope.last.name = node.column0; 
       scope.last.list = scope.listNodes; 
      } 

      busquedaDireccionService.expandNode(node).then(function (data){ 
       scope.listNodes = data; 
      }, function (error) { 
       var properties = $injector.get(profile); 
       $state.go(properties.errorState,{msg:'ERROR_SRV_CALLEJERO'}); 
       throw error; 
      }); 
     }; 

但這其他沒有:

scope.last = {name:null, list:[]}; 
     scope.lastLessOne = {name:null, list:[]}; 
     scope.first = {name:null, list: []}; 
     scope.listNodes = []; 

     //Eventos vista 
     scope.expandNode = function (node){ 

      if ((!scope.last.name) && (!scope.lastLessOne.name) && (!scope.first.name)){ 
       scope.lastLessOne.name = node.column0; 
       scope.lastLessOne.list = scope.listNodes; 
      } else if ((!scope.last.name) && (!scope.first.name)){ 
       scope.last.name = node.column0; 
       scope.last.list = scope.listNodes; 
      } else if (!scope.first.name) { 
       scope.first.name = scope.lastLessOne.name; 
       scope.first.list = scope.lastLessOne.list; 
       scope.llOne.name = scope.last.name; 
       scope.llOne.list = scope.last.list; 
       scope.last.name = node.column0; 
       scope.last.list = scope.listNodes; 
      } else { 
       scope.lastLessOne.name = scope.last.name; 
       scope.lastLessOne.list = scope.last.list; 
       scope.last.name = node.column0; 
       scope.last.list = scope.listNodes; 
      } 

      busquedaDireccionService.expandNode(node).then(function (data){ 
       scope.listNodes = data; 
      }, function (error) { 
       var properties = $injector.get(profile); 
       $state.go(properties.errorState,{msg:'ERROR_SRV_CALLEJERO'}); 
       throw error; 
      }); 
     }; 

這是有趣的,但是,如果我用一個變量名稱爲「lastLessOne 「在控制器的範圍內,在視圖中,變量總是具有未定義的值。如果改變變量的名字,一切似乎都很好。

有沒有人爲什麼?

+4

可以重現同樣的錯誤在plunkr? – Grundy

回答

0

這兩個代碼工作正常。你的代碼應該有一些其他的錯誤。

觀看演示爲lastLessOneJSFiddle

觀看演示爲llOneJSFiddle

<div ng-app> 
    <div ng-controller="TodoCtrl"> 
    {{lastLessOne}} 
    </div> 
</div> 
+0

它依賴於使用OP的視圖 – Grundy