HTML:
<a href id="link "ng-click="print(arg)"> print </a>
Angularjs控制器:
$scope.return_promise =function(arg){
return $http.post('\path');
)};
$scope.print = function(arg){
url ="other/path/"
$scope.return_promise(arg).then(function(r){
if(r){
$('#link').attr('href', url);
});
};
问题:我用chrome调试器检查过,href实际更新了,但事件没有触发(即没有转到url)。如果我再次点击它,它就可以了。
如果我在document.getElementById('#link').click()
子句末尾添加语句if
,则会提示错误“摘要周期正在进行中”
我该如何解决这个问题。
答案 0 :(得分:0)
不确定我是否收到您的问题。首先,检查您粘贴的代码是否是您想要添加的代码,因为它有很多错误。如果您想要动态替换href
属性,请执行以下操作:
<div ng-controller="SomeCtrl as ctrl">
<a href="ctrl.url" id="link "ng-click="ctrl.print(arg)">print</a>
</div>
(function () {
'use strict';
angular
.module('module')
.controller('SomeCtrl', SomeCtrl);
SomeCtrl.$inject = ['$scope'];
function SomeCtrl($scope) {
var vm = this;
vm.url = "#";
vm.return_promise = function (arg) {
return $http.post('/path');
};
vm.print = function (arg) {
var url = "other/path/";
vm.return_promise(arg).then(function (r) {
if (r) {
vm.url = url;
}
});
};
}
}());