2016-08-03 29 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

相关问题