从角度服务返回空值的变量
Variable returning null from Angular Service?
我有一个使用 AngularJS 构建的 SharePoint 应用程序。我有一个控制器正在调用服务中的函数,但它没有返回值。我对angularJS很陌生,所以我有点迷茫。我的服务:
App.factory('uploadAppService', function () {
return {
currentUserPic: function (myProfileProp) {
GetUserProfileInfo(myProfileProp).done(function (data) {
//The large thumbnail pic.
var picUrl = data.d.PictureUrl;
var largePicUrl = picUrl.replace('MThumb', 'LThumb');
console.log(largePicUrl) //the log here is correct. I want to return the largePicUrl back to my controller.
return largePicUrl;
});
}
我的控制器调用,我想用服务中的 url 填充.imageUrl
:
$scope.imageUrl = uploadAppService.currentUserPic("PictureUrl");
提前谢谢你。
对我来说
,你的currentUserPic
函数似乎没有返回值。 GetUserProfileInfo
确实返回了您的 largePicUrl,但此值不会在任何地方使用(如果我正确理解您的代码)。
你不应该使用return GetUserProfileInfo(myProfileProp).done(...);
吗?
编辑:但正如RaviH指出的那样,如果调用是异步的,您仍然必须在控制器中处理它。
我没有看到您的GetUserProfileInfo
服务的实现,但我想它是一个 Deffered 对象。
所以在代码之后
$scope.imageUrl = uploadAppService.currentUserPic("PictureUrl");
完成工作 - 变量$scope.imageUrl
中没有任何内容,因为工厂函数不返回任何内容。
因此,首先您需要修改factory
:
App.factory('uploadAppService', function () {
return {
currentUserPic: function (myProfileProp) {
return GetUserProfileInfo(myProfileProp).done(function (data) {
// ^
// Here - @ababashka's edit
//The large thumbnail pic.
var picUrl = data.d.PictureUrl;
var largePicUrl = picUrl.replace('MThumb', 'LThumb');
console.log(largePicUrl) //the log here is correct. I want to return the largePicUrl back to my controller.
return largePicUrl;
});
}
返回 Deffered 对象,因此在它完成工作后,您可以通过在 response
中获取图像 URL 来保存图像 URL。
在需要编写下一个代码之后:
uploadAppService.currentUserPic("PictureUrl").done(
function (response) {
$scope.imageUrl = response;
}
);
将您的 URL 存储在 $scope
的变量中。
相关文章:
- 映射数组ES6时考虑空值
- Model中的Typeahead返回空值以形成输入字段
- JavaScript-HTML表单到JSON(空值)和格式
- webkit输入类型=在错误日期发送空值的日期
- 为什么数据列表选项的id返回空值
- 如何使用敲除映射将空值映射到空的可观察数组
- 完整日历:在启动时传递空值
- 为什么此函数会过滤掉“空”值
- 通过 Yii2 表单插入数据时获取空值
- 从角度服务返回空值的变量
- Math.min.apply 返回 0 表示空值
- Angular材质md日期选择器中的空值
- 提示时检测空值
- Sails.js beforeValidate()清空值参数
- 为什么jQuery attr('href','#')设置了一个空值而不是#
- 正则表达式以避免HTML标记和空值
- sequelize-foreignkey允许空值
- 删除php数组中的空值
- 从数组空值到浏览器刷新的 Javascript 变量
- 多个属性's的空值变量