从AngularJS组件显示信息

问题描述 投票:0回答:1

文档说

输出通过&绑定实现,其功能是对组件事件的回调

处理程序在包含我的组件的功能的控制器中定义。

$scope.handleStatusChange = function (sc) {
  console.log(sc);
}

它被标记在组件上。

<search-context
  centre-code="4321"
  on-status-change="handleStatusChange">
</search-context>

当我在组件代码中调用处理程序时,将调用处理程序,但参数未定义。我尝试以各种方式表达参数均未成功。

ctrl.onStatusChange(ctrl.status);
ctrl.onStatusChange({ value: ctrl.status });

如何传递参数?

处理程序是否需要签名?

angularjs angular-components
1个回答
0
投票

文档中的此示例暗示属性名称和参数名称之间存在匹配约定。

function HeroDetailController() {
  var ctrl = this;

  ctrl.delete = function() {
    ctrl.onDelete({hero: ctrl.hero});
  };

  ctrl.update = function(prop, value) {
    ctrl.onUpdate({hero: ctrl.hero, prop: prop, value: value});
  };
}
<hero-detail ng-repeat="hero in $ctrl.list" hero="hero" 
  on-delete="$ctrl.deleteHero(hero)" 
  on-update="$ctrl.updateHero(hero, prop, value)"></hero-detail>

进行重写,以使标记绑定中的名称与调用回调时传递的对象中的属性名称匹配。

处理程序实现不必匹配,只需组件代码和标记即可。

© www.soinside.com 2019 - 2024. All rights reserved.