2016-08-03 27 views
1

現在我讀了很多帖子來解決這個問題,但似乎都沒有解決方案。Angular JS按鈕ng-click不會調用方法

在我的角度程序,我創建了角fullstack一條新路線:路線

因此,這裏有我的控制器,模板和配置文件:

控制器:

'use strict'; 

(function() { 
    class AnmeldungCtrl { 

    constructor($http, $window, $uibModal, $state) { 

    } 

    searchUser(searchString) { 
     console.log("search Method"); 
     if (searchString.isNaN()) { 
     this.state = "search"; 
     console.log("search"); 
     //TODO Search for name 
     } 
     else if (searchString >= 1000000) { 
     this.state = "anmeldung"; 
     console.log("anmeldung"); 
     //TODO Search for bar code 
     } 
     else { 
     this.state = "edit"; 
     console.log("edit"); 
     //TODO Search for Participant 
     } 
    } 
    } 

    angular.module('schwimmfestivalApp').controller('AnmeldungCtrl', AnmeldungCtrl); 
})(); 

模板:

<div> 

    <input type="text" ng-model="query" > 

    <button ng-click="ctrl.searchUser(query)">Search</button> 
    {{query}} 
</div> 

配置文件:

'use strict'; 

angular.module('schwimmfestivalApp') 
    .config(function ($stateProvider) { 
    $stateProvider 
     .state('anmeldung', { 
     url: '/anmeldung', 
     templateUrl: 'app/anmeldung/anmeldung.html', 
     controller: 'AnmeldungCtrl', 
     controllerAs: 'ctrl' 
     }); 
    }); 

正如我在我的標題中提到的某些原因,控制器中的方法沒有被調用。我不知道爲什麼。

在我的其他路線,它的工作。

我希望你能給我一個提示。

在此先感謝。

+0

你能否提供一些Plunk或jsfiddel以便更好地理解。 – Viplock

+0

'ctrl.searchUser = function(searchString){...}' – ksav

+0

是包含在您的項目中的控制器文件嗎? –

回答

2

好吧,我得到它的工作調用的函數。這是我的觀點的錯誤(如預期)。我的一位同事在另一條具有相同標識符的路徑中創建了一個cnontroller。

因此,角度不會拋出錯誤,如果這樣的事情發生。因爲第二個控制器處於較低的路徑上,所以在原始控制器之後的包含中。

感謝@MMhunter在構造函數中放置了一個控制檯輸出。這不是在我的開發環境中打印的。於是我開始尋找爲什麼,並找到了第二個控制器。

感謝各位的幫助。

0

嘗試使用剛剛searchUser(查詢),它可能工作,因爲控制器已添加無需使用控制器

+0

這不起作用沒有輸出到我的瀏覽器控制檯 – dominic

+0

其不是解決方案。 – Viplock

相關問題