当前位置: 首页 > 知识库问答 >
问题:

在所有组件之前添加要运行的“父”函数[重复]

章学义
2023-03-14

我不确定这个术语是什么,但我需要为我的应用程序中的所有组件提供相同的数据。以下是我的应用程序的基本结构:

在之前。js

function DataModel(json){
    this.name = json.name || "No name"
}

//// JQuery ////
function getDataModel(name) {
    return $.get(baseURL + "data-model/" + name).then(response => {
        return new DataModel(response)
    })
}

应用etup.js

var app = angular.module('MyApp', ['ui.router', 'ngResource', ...]);

app.config(function($stateProvider,$httpProvider,$urlRouterProvider,$sceProvider) {
    $sceProvider.enabled(false)

    // Each of these components need `getDataModel()` - how can I do that once and send it to all of them with Angular
    states = [
        { 
            name: 'Interactor', 
            url: '/interactor',
            component: 'interactorcomponent'
        },
        {
            name: "otherwise",
            url: "*path",
            component: "viewMDLcomponent"
        }
    ];

    states.forEach(state => $stateProvider.state(state))

    $httpProvider.defaults.useXDomain = true;
    delete $httpProvider.defaults.headers.common['X-Requested-With'];
}

ViewMDLComp。js

angular.module("MyApp").component("viewMDLcomponent", {
    templateUrl: "html/View_MDL.html",
    controllerAs: "c",
    controller: [..., View_MDL_Controller]
})

function View_MDL_Controller($http,$timeout,$filter,$log,$q,$sce,l,FileSaver,Blob) {
    var c = this

    $q.when(getAllDataModels().then(r => {
        console.log("getAllDataModels");
        c.allMisDataModels = r
    })
}

那么,我如何在Angular中运行在我的组件之前编译的东西,并向它们提供它们需要的数据呢?

共有1个答案

高森
2023-03-14

在jQuery函数中,当您解析您的promise时,将结果分配到附加到窗口对象的全局变量中。喜欢:

window.myAppDataModel = new DataModel(response);

然后在解决此函数后引导角应用程序。

然后定义一个常数,将其指定给该值:

myApp.constant('MY_DATA_MODEL', window.myAppDataModel);

然后在所有需要的服务/控制器中注入这个常量。

即使这样做可行,我的建议是将此逻辑引入服务中,并在状态的解析块中(或者如果需要的话,只在引导块中)执行请求并将值存储在服务中。然后注入服务并在需要的地方访问数据。

 类似资料:
  • 在运行时添加到当单击时。 我使用以下代码: 但是在中没有显示任何。

  • 方法和测试位于一个类中,例如 下面是我的testng.xml的示例,其中包含了包含功能测试的包 UPD.post修改后的代码中包含AfterTest。我只使用before/aftermethod注释

  • 问题内容: 我知道没有第一行就可以使用它,但实际上它经常包含在内。 是什么原因?没有它是否不安全? 我知道您也可以这样做: 但我说的是您需要一一添加项目的情况。 问题答案: 如果您未声明新数组,并且创建/更新数组的数据由于任何原因而失败,则将来尝试使用该数组的任何代码都将因为该数组不存在。 例如,如果未声明该数组且未添加任何值,将抛出错误。但是,如果数组只是空的,则不会发生任何错误,就像您声明它的

  • 问题内容: 我有一个和上。 在运行时添加到单击时。 我使用以下代码: 但没有显示任何在。 问题答案: 我看到您创建了一个名为: 但您永远不会将其添加到面板中。相反,您将没有文本的新内容添加到面板中: 当然,这将构造一个不可见的空标签。 添加类似后,还尝试在您的实例上调用和,如下所示: 这样,您可能还需要调用您的框架实例,以便调整大小以适合新组件。 另外,请不要使用/ 布局,这是非常糟糕的做法(除非

  • 我想给数组的每个元素添加相同的值。我的方法是使用default添加值。它与这个有一点不同,因为:我不知道如何写入数组的现有元素,而不是新元素。 输入: 提前感谢!