gpt4 book ai didi

javascript - AngularJS:将对象从指令传递到 Controller

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:46:15 25 4
gpt4 key购买 nike

在我的指令中,我正在实例化一个对象。

我想将此对象传递到与指令关联的 Controller 范围。我该怎么做?

请记住,这是一个独立的代码,供您了解问题。在实际问题中,在 Controller 内部实例化该对象无济于事。

我知道指令中的范围对象用于传递 HTML 中指定的值,我这样写是为了帮助您理解我要做什么。

angular.module('test', [])

.controller('test', ['$scope', function($scope) {
alert($scope.obj); //Needs to contain {value: 'bla'}

}])

.directive('pTest', ['$compile', function($compile) {
var object = {value: 'bla'};

return {
scope: {
obj: object //how can I do that?
},
controller: 'test'
};
}]);

最佳答案

您可以在方向的链接功能中执行此操作。由于要在作用域上设置值,可以使用链接函数的作用域参数。您还可以在 Controller 上设置对象,因为链接函数的第四个参数(可选)参数是指令的 Controller 。

.directive('pTest', ['$compile', function($compile) {
var object = {value: 'bla'};

return {
controller: 'test',
link: function(scope, elements, attrs, controller) {
scope.obj = object;
// or
controller.obj = object;
}

};
}]);

现在假设您不想通过在指令的返回中使用“作用域”成员来隔离作用域。从您的示例来看,我认为您实际上并不想要一个孤立的范围。 (无论如何,链接功能也可以在那里工作。)

关于javascript - AngularJS:将对象从指令传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27694729/

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