gpt4 book ai didi

javascript - 如何通过 promise 将参数传递给 AngularJS 中的函数

转载 作者:搜寻专家 更新时间:2023-11-01 04:40:14 25 4
gpt4 key购买 nike

我想将参数发送到服务函数。

getQuestions : function(stateCode) : questionResource.js

stateCode 由 dtoResource.rc1Step1DTO() 的响应设置在 $scope 中

angular
.module('autoQuote')
//Do initalization on page load
.run(['$log', '$rootScope', '$state', 'dtoResource', 'questionResource', function($log, $rootScope, $state, dtoResource, questionResource) {
$log.info('Post DTO on page load.');
dtoResource.rc1Step1DTO()
.then(questionResource.getQuestions)
.then(function(questions) {
$rootScope.questions = questions;
console.log('Obtained questions. Assigned to rootscope');
})
.then(function() {
console.log('This should be printed after the above methods are done executing');
console.log($rootScope);
});

}])

如何将状态代码传递给其他函数。它在范围内的位置是

$scope.postAutoQuoteObj.SessionInfo.StateCode

下面是代码的plunker http://plnkr.co/edit/Op1QDwUBECAosPUC7r3N?p=preview

最佳答案

您的模块 autoQuote.run() 只会在您的应用程序加载期间被调用一次。所以不要指望让它再次执行。

您接近正确答案了。你只需要做一些重组。我要提供的一个提示是担心稍后创建指令,首先让 Controller 、路由先工作。您已经创建了一个优秀的框架来开始。你正在使用用户界面路由器。这意味着您可以告诉 ui-router 在请求状态时执行哪个 Controller 。所以你的应用程序的生命周期如下

module.run//首先在这里运行任何代码。仅在初始负载module.config//在你的例子中 app.config 创建你的状态。

然后根据 url 查看您正在查看的状态;该状态(或 View )的 Controller 将被执行

因此,如果您为/添加另一个状态配置,您可以将该状态绑定(bind)到您的 autoQuoteCtrl。

此外,还有许多其他问题,例如尝试在输入元素中使用 ng-model 和值。这是不正确的。

您没有实现您的用户界面 View 。这将意味着您的 Controller 将永远不会执行。从技术上讲,如果你的情况 autoQuoteCtrl 会被执行,但只是因为你使用 ng-controller 将它强制到页面上,这是 ui-router 旨在避免的。

我认为这就是您最终将代码放在 .run() 中的原因。这是你发现你的应用程序会在页面加载时“运行”代码的唯一地方,这是错误的,它只是因为你的应用程序加载而运行。对不起,如果我是多余的。但这是很重要的一点。

此外,您正在尝试通过将状态代码传递给您的资源来访问您的 json 数据。 $resource 不是这样工作的。您传递资源的名称,它将返回该资源的所有内容。然后在返回 promise 后过滤代码。你只有一个资源。那是“CA.json”,因此您应该能够在资源服务中只使用一行并且只需要一个资源服务。您将需要额外的非资源服务来完成从 JSON 中过滤出正确数据的繁重工作。通常这就是为什么应用程序会调用不同的资源,以便每个资源都返回所需的模型,而不是单一的整体资源。

而且你永远不应该使用 document.getElementById() 你正在使用 angular,所以你不会直接与 dom 交互

最后,这里有一个经过大量修改的 plunkr,可以帮助您朝着正确的方向前进。

http://plnkr.co/edit/dUJm01uu7RnhltC2pLLb?p=preview

关于javascript - 如何通过 promise 将参数传递给 AngularJS 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38390869/

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