从其他javascript文件更改视图
我们正在使用angularjs进行开发,遇到了一个问题 我们通常从控制器内部更改视图,但在这种情况下,我们需要从其他js文件更改视图 解决这个问题的最佳方法是什么 我们创建了一个方法:从其他javascript文件更改视图,javascript,angularjs,Javascript,Angularjs,我们正在使用angularjs进行开发,遇到了一个问题 我们通常从控制器内部更改视图,但在这种情况下,我们需要从其他js文件更改视图 解决这个问题的最佳方法是什么 我们创建了一个方法: toShop: function() { var e = document.getElementById('appContainer'); var scope = angular.element(e).scope(); scope.$apply(function() {
toShop: function() {
var e = document.getElementById('appContainer');
var scope = angular.element(e).scope();
scope.$apply(function() {
scope.toShop();
});
}
但这不起作用,定义了scope对象,但apply函数不起作用
在Angle中是否有其他方法可以从控制器外部更改视图
编辑,控制器代码:
controllers.controller('HomeCtrl', function($scope, $location) {
$scope.toShop = function() {
alert('ruN!');
$location.url('/shop');
};
});
第一个js应该运行第二个js的方法,因此在执行$apply时出现了著名的apply ready in progress错误 在angular的这个版本之前,最好的方法是使用$timeout来检查应用程序是否已经运行 var-app=angular.module'app',[]
app.controller('myCtrl',function($scope, $location, $timeout) {
$scope.toShop = function() {
alert('ruN!');
$location.url('/shop');
};
$scope.toShopExternal = function() {
$timeout($scope.toShop);
};
}
);
您的外部代码
<script>
$(function() {
$("#jquery-button").click(function() {
var e = document.getElementById('appContainer');
var scope = angular.element(e).scope();
scope.toShopExternal();
});
});
</script>
你能提供一个完整的例子吗?这是从外部js文件运行的代码。当你点击f12时有错误吗?已经在progressk中应用了,我正在处理plunkr 4 u。阅读-