javascript – $emit或$将事件从控制器广播到指令AngularJS

栏目: 编程语言 · AngularJS · 发布时间: 7年前

内容简介:代码日志版权声明:翻译自:http://stackoverflow.com/questions/25878077/emit-or-broadcast-an-event-from-a-controller-to-a-directive-angularjs

我希望能够在事件发生时更改指令显示时通知指令.我知道指令只运行一次,所以我想知道我该怎么做.我也不确定是否应该使用$emit或$broadcast,是指令控制器的一个小孩吗?

例如,在我的控制器我有:

$rootScope.$emit(‘PHOTO_UPLOADED’,照片);

在我的指示中:

.directive('photo', [function () {
  return {
    restrict: 'EA',
    scope: {user: '='},
    replace: true,
    template: '<div id="{{user.id}}"></div>',
    link: function ($scope, element, attrs) {
      var thumbnail = ($scope.user && $scope.user.image) 
        ? $scope.user.image
        : '/default.png';

      element.css('background-image', 'url(' + thumbnail + ')');

      $rootScope.$on('PHOTO_UPLOADED', function(event, data) {
         thumbnail = data;
      });
    }
  };
}])

我试图这样做,但没有发生任何事情,缩略图没有更新,因为指令已经运行.

使用$broadcast.这将播放事件到儿童范围.以下是使用广播将数据发送到父控制器的指令的示例:

http://jsfiddle.net/smaye81/q2hbnL5b/6/

代码日志版权声明:

翻译自:http://stackoverflow.com/questions/25878077/emit-or-broadcast-an-event-from-a-controller-to-a-directive-angularjs


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

恰如其分的软件架构

恰如其分的软件架构

George Fairbanks / 张逸、倪健、高翌翔 / 华中科技大学出版社 / 2013-9-1 / 88.00

本书描述了一种恰如其分的软件架构设计方法。作者建议根据项目面临的风险来调整架构设计的成本,并从多个视角阐述了软件架构的建模过程和方法,包括用例模型、概念模型、域模型、设计模型和代码模型等。本书不仅介绍方法,而且还对方法和概念进行了归类和阐述,将软件架构设计融入开发实践中,与 敏捷开发方法有机地结合在一起,适合普通程序员阅读。 . 这是一本超值的书,案例丰富有趣,言简意赅,阅读轻松。当年......一起来看看 《恰如其分的软件架构》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具