gpt4 book ai didi

javascript - AngularJS - 带有 templateUrl 函数刷新/重绘/更新的指令

转载 作者:行者123 更新时间:2023-11-28 03:21:55 25 4
gpt4 key购买 nike

我有一个 angularJS 指令,它的 templateUrl 属性设置为一个函数,它根据服务函数确定要使用的模板。当服务完成某个作业(也由指令内的事件触发)时,它会触发一个回调,该回调会修改指令的范围,并且应该调用指令的“重绘”。通过重绘,我的意思是调用 templateUrl 函数,并根据服务内的新值正确更新模板。我不知道如何调用此重绘/更新,谷歌也无法解决我的问题。

application.directive('loginform', ['authorization', function(auth) {
return {
restrict: 'E',
transclude: true,
replace: true,
templateUrl: function(element, attributes)
{
if(auth.token() != "")
{
return "/client/templates/loginForm_disabled.html";
}
else
{
return "/client/templates/loginForm_enabled.html";
}
},

link: function($scope, element, attributes) {
$scope.username = "";
$scope.password = "";
$scope.message = "";

//this function is called on a button press.
$scope.login = function() {
auth.login($scope.username, $scope.password, function (success) {
if(!success)
{
$scope.message = "Login was unsuccessful";
}
else
{
$scope.message = "";
}
//call a redraw/update of the template
});
}
}
}
}]);

最佳答案

尝试使用 $scope.$apply()

这个问题的详细信息可能会有所帮助。

How to modify scope from within a directive in AngularJs

关于javascript - AngularJS - 带有 templateUrl 函数刷新/重绘/更新的指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24022935/

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