gpt4 book ai didi

javascript - 如何使用 angularjs 工厂获取和设置?

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

我正在使用 angularjs 工厂设置和获取值,这些是进入 mainCtrl 的实时消息,我想在以下情况下获取当前位于 $scope.event 中的数据:用户搜索日志由 searchLogs() 我已将数据填充到正在工作的模态窗口中,但问题是我不断从 mainCtrl 获取数据,一旦我有数据,如何停止绑定(bind)在模式窗口中,有时我不想获取数据,因此用户可以进行 $scope 中可用的搜索?

工厂.js

angular.module('App').factory('searchFactory', function ($http) {
'use strict';
var logs;
return {
getDitLogs : function () {
return logs;
},

setDitLogs : function (data) {
logs = data;
}
}

});

mainCtrl.js

  $scope.searchLogs = function () {
$scope.modalInstance = $uibModal.open({
templateUrl: '/view/modals/searchModal.html',
controller:'SearchController'
});
searchFactory.setDitLogs($scope.event);
}

childCtrl.js

$scope.event = searchFactory.getDitLogs();
console.log(searchFactory.getDitLogs());

main.html

 <div class="col-md-12">
<ul style="list-style: none;">
<li ng-repeat="message in event track by $index"><span><strong>Log:</strong></span><span>{{message}}</span></li>
</ul>
</div>

最佳答案

$scope.modalInstance 有一个名为 opened 的属性,它是一个 promise 。一种方法是等待该 promise 得到解决,然后设置一个标志,以便 searchFactory.setDitLogs() 不会被调用:

$scope.searchLogs = function () {
if(!$scope.doNotSetDit){
$scope.modalInstance = $uibModal.open({
templateUrl: '/view/modals/searchModal.html',
controller:'SearchController'
});
$scope.modelInstance.opened.then(function(){$scope.doNotSetDit =true});
searchFactory.setDitLogs($scope.event);

}}

关于javascript - 如何使用 angularjs 工厂获取和设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38637921/

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