gpt4 book ai didi

AngularJS - 如何以编程方式创建一个新的、独立的范围?

转载 作者:行者123 更新时间:2023-12-03 05:13:28 24 4
gpt4 key购买 nike

我想用 Angular.factory 创建一个 AlertFactory。我定义了一个 html 模板,如下所示

var template = "<h1>{{title}}</h1>";

标题由调用 Controller 提供并按如下方式应用

var compiled = $compile(template)(scope);
body.append(compiled);

那么,我如何将隔离范围从 Controller 传递到工厂?我在 Controller 中使用以下代码

AlertFactory.open($scope);

但是 $scope 是全局 Controller 范围变量。我只想通过一个只有标题属性的工厂的小范围。

谢谢。

最佳答案

您可以手动创建新范围。

您可以从 $rootScope 创建一个新的作用域(如果您注入(inject)它),或者仅从您的 Controller 作用域创建一个新作用域 - 这应该不重要,因为您将使其隔离。

var alertScope = $scope.$new(true);
alertScope.title = 'Hello';

AlertFactory.open(alertScope);

这里的关键是将 true 传递给 $new,它接受一个 isolate 参数,从而避免从父级继承作用域。

更多信息可以在以下位置找到: http://docs.angularjs.org/api/ng.$rootScope.Scope#$new

关于AngularJS - 如何以编程方式创建一个新的、独立的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15559442/

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