我的$ scope angularJS中有两种类型的变量。
1)。 $ scope.name,$ scope.title - 这些绑定到两个输入框(这些是绑定到UI html代码)。
2)。 $ scope.sum,$ scope.difference - 这些变量在内部使用JS代码,我需要它们作为全局变量来访问不同的函数。
问题: - $ scope。$ watch函数将针对第二种情况的变量运行,这些类型的变量对我的页面性能产生了不良影响。
答案 0 :(得分:0)
$ scope中的变量可以通过out(在diff函数中)访问控制器。如果要在另一个控制器中使用这些变量,可以使用service / factory在diff控制器中共享范围变量。
答案 1 :(得分:0)
这取决于你的表达方式。但是,永远不要看一个昂贵的表达,因为angularjs会多次评估,它必然会对你的应用程序性能产生非常不利的影响。
通常,在出现性能问题时,有必要优化应用程序。在大多数情况下,一切都很顺利,并且不希望不必要地使应用程序复杂化。
此外,您可以使用单向数据绑定,其中表达式以::
开头。在第一次消化后,表达式将在稳定后停止重新计算。
答案 2 :(得分:0)
如果这些功能与角度无关,您可以使用以下内容 只需在页面中声明一个全局变量,并将其值分配给该模态
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.globalVariable = "something";
globalVariable = $scope.globalVariable;
});
var globalVariable;
function externalFunction(){
alert(globalVariable);
}
此处Plunker
如果这些功能在另一个控制器内,您可以使用服务或工厂在控制器之间共享信息 有关服务和工厂,请参阅此链接