gpt4 book ai didi

javascript - 在工厂设置数据并将其绑定(bind)到 Controller

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

目标:在 Controller (errorCtrl)中显示错误,可以在多个其他 Controller (即 modulCtrl)中设置

我通过设置服务(ErrorConsole)来尝试此操作。

logViewApp.service('ErrorConsole', function () {
this.errorMsg = 'no error';
return {
error: this.error,
setError: function(data){
this.error = data;
}
}
});

从服务中检索数据很容易

js:

logViewApp.controller('errorConsoleCtrl', function ($scope, ErrorConsole) {
$scope.error = ErrorConsole.errorMsg;
});

html:

<nav class="navbar navbar-default navbar-fixed-bottom" role="navigation" ng-controller="errorConsoleCtrl">
<div class="container-fluid text-danger">
ERROR:{{msg}}<br>
<span >Query:{{query}}</span><br>
test:{{testdata}}

</div>
</nav>

但我可以在工厂设置数据,但它不会显示在 errorConsoleCtrl

logViewApp.controller('modulCtrl', function( $scope, $http, $routeParams, ErrorConsole ){
$scope.moduleName = $routeParams.modulId;

var postData = {
task: 'loadLogsByModul',
modul: moduleName,
limit: 100
}

$http.post('data/log.php', postData).success(function (ret) {
if (!ret.error) {
// ...do stuff
}
else {
ErrorConsole.setError('fatal error');
console.log( ErrorConsole );
}
});

});

第一个问题:这是正确的方法吗?第二个问题:为什么这不起作用?依赖注入(inject)工厂仍然是 Controller 范围的主题吗?

最佳答案

service 配方像构造函数一样被调用,因此没有必要执行返回。该服务应写为

logViewApp.service('ErrorConsole', function () {
this.errorMsg = 'no error';
this.setError: function(data){
this.errorMsg = data;
}
}
});

关于javascript - 在工厂设置数据并将其绑定(bind)到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25207872/

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