2017-05-04 92 views
0

我敢肯定,我打電話是錯誤的,但我一直在使用Angular 1.6構建的界面。AngularJS(1.6)ng-click函數不起作用

其他一切工作正常,但這ng-click指令。我的控制器的相關部分,稱爲signupController用別名爲「SUP」是在這裏:

sup.postForm = function($http){ 
    console.log("postform has been fired."); 
    $http.post('api/submit', sup.contactInfo) 
     .then(function(response){ 
     sup.messages.push('Successfully added. Thanks, ' + contactInfo.firstName); 
    }, function(response){ 
     sup.messages.push('Sorry, this failed. Please try again. \n' + response); 
    }); 
} 

在我的HTML,我追平了功能按鈕,像這樣:

<button class="btn btn-success" id="submit" ng-click="postForm">Submit</button> 

但它不會觸發該功能。我說錯了嗎?如果是這樣,那麼該如何正確做到。

+2

應該是'納克注入$ HTTP -click =「postForm()」' – raina77ow

+0

是的,它應該是'ng-click =「sup.postForm()」或ng-submit =「sup.postForm()」會更有意義 –

+1

'$ http' isn我是福nction參數,它是一個注入你的控制器的依賴項,它擁有比你的函數更高的範圍。如果它不在控制器中,那麼你不會傳入它。 –

回答

1

你函數應該是sup.postForm = function(){....}

你應該在控制器/指令

angular.module('myApp.controllers', []). 
    controller('SomeCtrl', ['$scope', '$http', function ($scope, $http) { 
    // ... 
}); 

,那麼你要調用你的HTML作爲

<button class="btn btn-success" id="submit" ng-click="postForm()">Submit</button> 
+0

我相信如果控制器被別名爲'sup',那麼ng-click指令也需要別名'ng-click =「sup.postForm() 「' –

+0

這也假設'sup = $ scope'別名,我們不知道,但如果它是真的,那麼Tah是對的 –

+0

這是正確的。我可能錯過了別名部分。多謝你們。 – OLDRomeo