javascript - 从组件 AngularJS 调用 javascript 函数

标签 javascript angularjs components

我是 Angular 组件的新手,正在尝试为我的网站创建页眉/页脚。

这是我当前的 header 组件,我在与 Controller 相同的文件中声明。

app.component('headerComponent', {

    template: '<div class="header"><div class="container"><div class="row">
    <div class="col-md-5"><!-- Logo --><div class="logo"><h1><a 
    href="adminHome.html">'+ localStorage.getItem('username')+'</a></h1>
    </div></div><div class="col-md-5"><div class="row"><div class="col-lg-
    12"></div></div></div><div class="col-md-2"><div class="navbar navbar-
    inverse" role="banner"><nav class="collapse navbar-collapse bs-navbar-
    collapse navbar-right" role="navigation"><ul class="nav navbar-nav"><li 
    class="dropdown"><a href="" class="dropdown-toggle" data-
    toggle="dropdown">My Account <b class="caret"></b></a><ul 
    class="dropdown-menu animated fadeInUp"><li><a 
    href="profile.html">Profile</a></li><li><a href ng-
    click="logout();">Logout</a></li></ul></li></ul></nav></div></div></div>
    </div></div>',

});

当我尝试使用 header 组件标签来包含我的 header 时,我的注销功能不起作用。如何使用在此组件外部声明的函数?谢谢!

最佳答案

仅仅位于同一个文件中是不够的。当你定义组件时,你需要告诉 angularJs 使用什么 Controller ,否则它将使用默认 Controller (基本上是一个空函数)。此外,组件使用 Controller 作为语法,因此您不能只调用 logout(),您需要调用 $ctrl.logout()。例如:

// I did the controller as a constructor function, but you could also do a class
const MyController = function ($log) {
   this.logout = function () {
      $log.info('you clicked the logout button!);
   }
}

app.component('headerComponent', {
    template: '<a ng-click="$ctrl.logout()">hello world</a>,
    controller: MyController
});

关于javascript - 从组件 AngularJS 调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46159249/

相关文章:

javascript - 不使用 jQuery 的 HTML5 可拖动控件

css - Angular/Valdr - 将自定义类添加到 valdr-form-group

c++ - 如何设计一个Qt前后端分离的程序?

javascript - 延迟 Angular-ui 模态关闭

angularjs - polymer 等同于 ng-show?

javascript - 子组件中的 onClick 操作发送了错误的元素

c++ - 面向组件的系统中的灵活数据消息传递

javascript - 对象中的NodeJs FindbyId

javascript - MVC4 中的自动完成

JavaScript 未在 Firefox 中执行