gpt4 book ai didi

javascript - 无法将动态参数传递给 Angular Directive(指令)

转载 作者:行者123 更新时间:2023-11-29 21:10:42 25 4
gpt4 key购买 nike

我刚刚接手了我们的 angularjs 应用程序的前端工作,但我被困住了。

我一直在创建指令来替换臃肿的 html,使更新前端看起来更容易。一切顺利,直到我点击了我们选举应用程序的投票页面。

指令传递参数(无效)

 <div block-container header="vm.electionToVote.name" startrow="'false'">
<div block-container header="'vm.electionToVote.name'" startrow="'false'">
<div block-container header="{{vm.electionToVote.name}}" startrow="'false'">

通常这些工作

<div block-container header="'Elections List'">
<div block-container header="vm.full.title" startrow="'false'">

指令 html <h3>{{style.header}}</h3>

指令

.directive('blockContainer', blockContainer);
/* @ngInject */
function blockContainer() {
var directive = {
scope: {
header: '=',
startrow: '='
},
replace: true,
transclude: true,
controller: blockContainerCtrl,
controllerAs: 'style',
templateUrl: 'app/style/directives/blockContainer.tpl.html',
restrict: 'A'
};
return directive;
function blockContainerCtrl($scope) {
//debugger;
var vm = this;
vm.header = $scope.header;
vm.startrow = angular.isDefined($scope.startrow) ? $scope.startrow : 'true';
}
}

运行调试显示 vm.electionToVote 未定义,但 ng-inspector 显示有内容(id、名称、endDate 等)屏幕截图:http://i.imgur.com/d6nbAsV.png

您可以在此处查看所有(包括选举)文件:https://plnkr.co/edit/bPVp8QY0xzlJ6aWZoRDi?p=preview

我真的是一个 angualjs 初学者,但是通过谷歌、stackoverflow 和大量的反复试验,我正在完成工作……有点……

任何其他提示/建议也将不胜感激

最佳答案

由于您已经在 HTML 上使用 style.header 来绑定(bind) HTML 上的 header 值,因此您应该在指令中添加 bindToController: true所有独立的作用域绑定(bind)都将在您的指令 html 中可用。

指令

var directive = {
scope: {
header: '=',
startrow : '='
},
replace: true,
transclude: true,
controller: blockContainerCtrl,
controllerAs: 'style',
templateUrl: 'app/style/directives/blockContainer.tpl.html',
restrict: 'A',
bindToController: true //<-- Added this line
};

指令用法

<div block-container header="vm.electionToVote.name" startrow="'false'">

此外,您不应该在 Controller 中手动执行 headerstartrow 变量赋值。删除这两个分配部分将使其工作。

关于javascript - 无法将动态参数传递给 Angular Directive(指令),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42036323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com