2015-06-20 31 views
2

我是新來的角和使用函數來加載數據使用$ http,這對我工作。之後,我決定做一些表單驗證以查看它的行爲。我可以單獨做,但有點困惑,我該如何合併我的代碼和上面,這樣我的兩個函數都能正常工作。 的代碼如下:在AngularJs中使用多個函數

var App = angular.module('App', []); 

App.controller('DataCtrl', function($scope, $http) { 
    $http.get('any url or file') 
    .then(function(result) { 

     $scope.data = result.data; 


    }); 
}); 

控制器在體內的屬性是這樣定義的:

<body ng-controller="DataCtrl"> 

現在,當我把其他功能在同一個app.js文件,這不工作中,任何人可以幫助我走出這一點,驗證碼是這樣的:

App.controller('DataCtrl', function($scope) { 
     $scope.submitForm = function(isValid) { 

    if (isValid) { 
     alert('submitting data'); 
    } 
    }; 

}); 

,我需要做的唯一的事情就是讓他們這樣的工作:1。 納羅亞d數據(工作) 2.在第二個代碼塊的幫助下實施驗證。

+0

你是什麼意思它不工作呢?函數沒有被調用? – CuriousMind

回答

3

只是試圖解釋的東西是如何工作的:)

當瀏覽器遇到這條線<body ng-controller="DataCtrl">它會查找與該註冊的控制概念的探討角js。 但在你的情況我猜你是臨時用戶控制器兩次一樣

FIRST

App.controller('DataCtrl', function($scope, $http) { 
    $http.get('any url or file') 
    .then(function(result) { 

     $scope.data = result.data; 


    }); 
}); 

第二

App.controller('DataCtrl', function($scope) { 
     $scope.submitForm = function(isValid) { 

    if (isValid) { 
     alert('submitting data'); 
    } 
    }; 

}); 

這樣定義的一個覆蓋另一個根據訂單您腳本文件中的註冊方法。

因此,要克服這一點,你需要使用只有一個註冊的控制: -

App.controller('DataCtrl', function($scope, $http) { 
    $http.get('any url or file').then(function(result) { 

     $scope.data = result.data; 


    }); 

     $scope.submitForm = function(isValid) { 

      if (isValid) { 
       alert('submitting data'); 
      } 
     }; 
}); 

代碼來源: - S Vinesh

+0

其實你只需要使用第三塊。第一和第二塊是不必要的。所以你只有一個控制器。希望你能理解!。 我的回答正確嗎?這是你問什麼? –

+0

嘿@S Vinesh這就是我對OP說的,他/她必須只使用控制器的一個定義而不是兩個。 – squiroid

+0

雅你說得對 –

2

只是用它像下面

var App = angular.module('App', []); 

App.controller('DataCtrl', function($scope, $http) { 
    $http.get('any url or file').then(function(result) { 

     $scope.data = result.data; 


    }); 

     $scope.submitForm = function(isValid) { 

      if (isValid) { 
       alert('submitting data'); 
      } 
     }; 
}); 
+0

謝謝,這就是我所需要的。 – sam

+0

我upvoted你,但只給出解釋的答案:)榮譽!!! :) – squiroid

相關問題