我不确定这个术语是什么,但我需要为我的应用程序中的所有组件提供相同的数据。以下是我的应用程序的基本结构:
在之前。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中运行在我的组件之前编译的东西,并向它们提供它们需要的数据呢?
在jQuery函数中,当您解析您的promise时,将结果分配到附加到窗口对象的全局变量中。喜欢:
window.myAppDataModel = new DataModel(response);
然后在解决此函数后引导角应用程序。
然后定义一个常数,将其指定给该值:
myApp.constant('MY_DATA_MODEL', window.myAppDataModel);
然后在所有需要的服务/控制器中注入这个常量。
即使这样做可行,我的建议是将此逻辑引入服务中,并在状态的解析块中(或者如果需要的话,只在引导块中)执行请求并将值存储在服务中。然后注入服务并在需要的地方访问数据。
在运行时添加到当单击时。 我使用以下代码: 但是在中没有显示任何。
方法和测试位于一个类中,例如 下面是我的testng.xml的示例,其中包含了包含功能测试的包 UPD.post修改后的代码中包含AfterTest。我只使用before/aftermethod注释
问题内容: 我有一个和上。 在运行时添加到单击时。 我使用以下代码: 但没有显示任何在。 问题答案: 我看到您创建了一个名为: 但您永远不会将其添加到面板中。相反,您将没有文本的新内容添加到面板中: 当然,这将构造一个不可见的空标签。 添加类似后,还尝试在您的实例上调用和,如下所示: 这样,您可能还需要调用您的框架实例,以便调整大小以适合新组件。 另外,请不要使用/ 布局,这是非常糟糕的做法(除非
问题内容: 我知道没有第一行就可以使用它,但实际上它经常包含在内。 是什么原因?没有它是否不安全? 我知道您也可以这样做: 但我说的是您需要一一添加项目的情况。 问题答案: 如果您未声明新数组,并且创建/更新数组的数据由于任何原因而失败,则将来尝试使用该数组的任何代码都将因为该数组不存在。 例如,如果未声明该数组且未添加任何值,将抛出错误。但是,如果数组只是空的,则不会发生任何错误,就像您声明它的
我想给数组的每个元素添加相同的值。我的方法是使用default添加值。它与这个有一点不同,因为:我不知道如何写入数组的现有元素,而不是新元素。 输入: 提前感谢!