gpt4 book ai didi

javascript - 如何执行通过对象传递的指令中的方法

转载 作者:行者123 更新时间:2023-12-03 08:13:47 25 4
gpt4 key购买 nike

目标:我需要在指令模板 html 中执行一个方法,该方法是传递到指令范围的对象的成员。

我正在尝试获取“Hello, world!”输出。请有人帮忙吗?

html:

var myApp = angular.module('myApp',[]);

myApp.directive('passObject', function() {
return {
restrict: 'E',
scope: { obj: '=' },
template: '<div>Hello, {{obj.func1()}}!</div>'
};
});

myApp.controller('MyCtrl', function ($scope) {
$scope.obj = { func1: "$scope.function1.toString()" };

$scoe.function1 = function() {
return "world!";
};
});
<div ng-controller="MyCtrl">
<pass-object obj="obj"></pass-object>
</div>

最佳答案

首先,您需要在创建对象之前定义函数。其次,您需要将函数定义而不是函数调用传递给对象(不带“()”)。

var myApp = angular.module('myApp',[]);
myApp.directive('passObject', function() {
return {
restrict: 'E',
scope: { obj: '=' },
template: '<div>Hello, {{obj.func1()}}!</div>'
};
});

myApp.controller('MyCtrl', function ($scope) {
$scope.function1 = function() {
return "world!"; // here you can call .toString() if needed
};
$scope.obj = { func1: $scope.function1 };
});
<div ng-controller="MyCtrl">
<pass-object obj="obj"></pass-object>
</div>

关于javascript - 如何执行通过对象传递的指令中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34040746/

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