【问题标题】:Angular Material ng-click not working in custom directiveAngular Material ng-click 在自定义指令中不起作用
【发布时间】:2016-01-06 03:41:28
【问题描述】:

我正在尝试使用指令为我的 html 页面创建标题页,因为标题将出现在多个页面上。 我创建了一个名为“header”的指令,它只是加载 header.html

这是使用指令的html

这是指令

   app.directive('header', function() {
    return {
        controller: headerController,
        templateUrl: 'header.html'
    };
});

header.html

<link rel="stylesheet" href="css/header.css">
<script src="scripts/signIn/signIn.js"></script>
<script src="scripts/signIn/signInController.js"></script>

<md-button class="md-button" id="accountCreation" ng-click="showLogInPage()">Create Account/Login</md-button>

我的 header.html 文件有一个按钮,应该打开一个对话框,但它不工作。我之前使用 javascript 创建了标头,并且效果很好。 showLoginPage 在控制器中定义为 $scope.showLoginPage() 但单击按钮时不会调用该函数

我的控制器的一个 sn-p

app.controller('headerController' , function($scope, $mdDialog, $mdMedia,userService) {

$scope.status = '  ';
$scope.userService = userService;
var useFullScreen = ($mdMedia('sm') || $mdMedia('xs'))  && $scope.customFullscreen;
$scope.showLoginPage = function() {
...
}
});

【问题讨论】:

  • 无法使用角模板加载脚本,将它们包含在主页中
  • 检查大写字母 -- ng-click="showLogInPage()" vs $scope.showLoginPage = function() {
  • 您可以尝试将控制器功能移动到指令定义中,而不是单独的文件中吗?我认为当你的指令被初始化时你的控制器没有注册到你的模块中。
  • 您还需要在控制器名称上加上引号 -- controller: 'headerController',

标签: javascript angularjs


【解决方案1】:

谢谢。 我能够解决这个问题。添加引号是一回事。我还必须在 header.html 中创建控制器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    相关资源
    最近更新 更多