【问题标题】:Nativescript: how to store HTTP values to public variablesNativescript:如何将 HTTP 值存储到公共变量
【发布时间】:2016-07-23 17:41:08
【问题描述】:

我在这里遇到了一些问题,我混合使用了 Angular2 和 Nativescript 的原生 JS 来使用 HTTP,因为在此实现之前我遇到了 Angular2 HTTP 的问题,但是我对如何将 JSON 响应从对 monthList 变量的 http 请求,以便可以在任何地方读取它。请帮忙,谢谢。

这是我的代码:

public monthList = [];


    constructor(location: Location, private page: Page, private router: Router, private testing: any) {
        this.router = router;
        this.testing = testing;
        let http = require("http");


        http.getJSON("link")
            .then(function (r) {
                // Argument (r) is JSON!
            }, function (e) {
                // Argument (e) is Error!
                console.log(e);
            });

    }

【问题讨论】:

    标签: javascript android angular nativescript angular2-nativescript


    【解决方案1】:

    在您的 .then 中,您将返回对象设置为您的 monthList

    this.monthList = r;
    

    尝试执行 console.dump(r) 并查看返回的内容。您可能需要执行类似 r.xxx 的操作,或者它的结构。

    那么你可能会做类似的事情

    this.monthList.month 
    

    并访问当月的数据等等。或者你可能不得不做类似的事情

    this.monthList[0].month.
    

    例如,在我的项目中,我返回了一个嵌套的 JSON 对象,我需要将其设置为类似 r.value.data 的内容。

    【讨论】:

    • 稍后会尝试...但我想我之前尝试过但没有成功...只是提醒...这是nativescript angular2中的一个要求...:)
    【解决方案2】:

    您是否遇到了特定问题?我认为它很简单:

    class SomeAngularClass {
      constructor() {
        http.getJSON("link")
          .then(function(r) {
            this.monthList.push(r);
          }, function (e) {
            console.log(e);
          });
      }
    }
    

    然后您可以通过以下方式访问它:

    SomeAngularClass().monthList;
    

    【讨论】:

    • 主要是控制台返回未捕获的promise类型的错误......然后在android模拟器中只显示空白......
    猜你喜欢
    • 2011-08-20
    • 2020-02-07
    • 1970-01-01
    • 2017-06-14
    • 2020-11-13
    • 1970-01-01
    • 2016-05-10
    • 2020-01-11
    • 1970-01-01
    相关资源
    最近更新 更多