按下模板内的按钮时找不到控制器方法

时间:2015-03-22 18:01:21

标签: angularjs

我使用NodeJS,Express和AngularJS创建一个项目,该项目将包含一个搜索表单(通过自定义指令添加)和一个必须在按下搜索按钮后才能加载的搜索结果。

问题是我在控制器中创建的方法无法从搜索表单中找到。 以下是我的代码示例:

app.js

(function() {
    var app = angular.module('app', ['app-directives']);

  app.controller('AppController', function() {
    this.buttonClick = function() {
      alert('Test');
    };
  });
})();

directives.js

(function(){
    var app = angular.module('app-directives', []);

    app.directive('searchForm', function() {
       return {
         retrict: 'E',
         templateUrl: '/partials/search-form.html'
       };
    });

    app.directive('searchResults', function() {
       return {
         retrict: 'E',
         templateUrl: '/partials/search-results.html'
       };
    });
})();

搜索form.html

<input type="text" id="query" />
<button onclick="buttonClick">Search</button>

页面content.html

<section id="mainContent">
    <search-form></search-form>
    <search-results></search-results>
</section>

更新

第二个问题将在另一个帖子中发布。

1 个答案:

答案 0 :(得分:0)

关于你的第一个问题:

您正在使用onclick属性而不是角度&#39; ng-click&#39;在按钮搜索中。这可能是问题所在。并且不要忘记添加&#39; ng-app&#39;和&#39; ng-controller&#39;标签。如果没有,您的方法将永远不可见。

我还建议你使用$ scope服务而不是&#39;这个&#39;用于附加模型和功能,稍后您将在视图中使用。

此致