混搭 Wirecloud 和 Angular js
Mashup Wirecloud and Angular js
我已经通过 angular.js 开发了一个应用程序 - 小部件 - 它将托管在 WireCloud 中。我需要获取在应用程序中登录的用户的用户名。
为此,我不得不使用 MashupPlatform.context.get('username') - 但是 Angular 显然不理解 "MashupPlatform" 因为它是一个外部对象。
你知道如何解决这个问题吗?
谢谢
当您的小部件部署到 Wirecloud 平台时,将加载(或注入)MashupPlatform。如果只是想在本地测试一下,可以这样问有没有:
if (typeof MashupPlatform === 'undefined') {
username = "testusername";
}
else {
username = MashupPlatform.context.get('username');
}
正如@Meier 所说,当您的小部件在 Wirecloud 中加载时,MashupPlatform 被注入,但要在本地测试它,您可以使用 mock-mashupplatform
library,它在 npm 和 bower 中。目前几乎所有的 wirecloud 0.7 都支持,但本周将支持 0.8。
对于此示例,您将执行如下操作:
// Create the default values in a dictionary
var preferencesValues = {
'username': 'myusername'
};
// Construct the default values with strategies
var values = {
'prefs.get': MockMP.strategy.dict(preferencesValues)
};
// Construct the MashupPlatform with that values
window.MashupPlatform = new MockMP.MockMP(values);
终于简单了。我的路由有 html 个链接,但这是错误的。我将路由样式更改为 javascript ( ng-click ) 并且可以。
谢谢大家的帮助。
我已经通过 angular.js 开发了一个应用程序 - 小部件 - 它将托管在 WireCloud 中。我需要获取在应用程序中登录的用户的用户名。 为此,我不得不使用 MashupPlatform.context.get('username') - 但是 Angular 显然不理解 "MashupPlatform" 因为它是一个外部对象。
你知道如何解决这个问题吗?
谢谢
当您的小部件部署到 Wirecloud 平台时,将加载(或注入)MashupPlatform。如果只是想在本地测试一下,可以这样问有没有:
if (typeof MashupPlatform === 'undefined') {
username = "testusername";
}
else {
username = MashupPlatform.context.get('username');
}
正如@Meier 所说,当您的小部件在 Wirecloud 中加载时,MashupPlatform 被注入,但要在本地测试它,您可以使用 mock-mashupplatform
library,它在 npm 和 bower 中。目前几乎所有的 wirecloud 0.7 都支持,但本周将支持 0.8。
对于此示例,您将执行如下操作:
// Create the default values in a dictionary
var preferencesValues = {
'username': 'myusername'
};
// Construct the default values with strategies
var values = {
'prefs.get': MockMP.strategy.dict(preferencesValues)
};
// Construct the MashupPlatform with that values
window.MashupPlatform = new MockMP.MockMP(values);
终于简单了。我的路由有 html 个链接,但这是错误的。我将路由样式更改为 javascript ( ng-click ) 并且可以。
谢谢大家的帮助。