【发布时间】:2016-03-02 06:45:31
【问题描述】:
我想将$stateparams.id连同以下内容一起发送,
HTML:
<ion-refresher pulling-text="Pull to refresh..." on-refresh="vm.loadList(true)">
</ion-refresher>
<ion-list>
<ion-item class="item-remove-animate item-thumbnail-left item-icon-right" ng-repeat="data in vm.menuItems" href="#/app/menu-detail/{{data._id}}" type="item-text-wrap">
<img ng-src="app/data/images/{{data.imageUrl}}">{{data.categoryName}} <br />
<p ng-show="{{data.is_recommended}}"><span class="gem-label warning">Chef Special</span></p>
<i class="icon ion-chevron-right icon-accessory"></i>
</ion-item>
</ion-list>
控制器:
vm.loadList = function (forceRefresh) {
appealityApi.getMixedMenu(forceRefresh,$stateParams).then(function (data) {
vm.menuItems = data
}).finally(function () {
$scope.$broadcast('scroll.refreshComplete');
我尝试如下,但 id 没有传递给 服务(appealityApi),
var params = {
id : $stateParams.id,
}
vm.loadList = function (forceRefresh,params) {
appealityApi.getMixedMenu(forceRefresh,params).then(function (data) {
vm.menuItems = data
}).finally(function () {
$scope.$broadcast('scroll.refreshComplete');
});
};
});
};
我的服务如下,
function getMixedMenu(forceRefresh,params) {
$ionicLoading.show({ template: 'Loading...' })
if (typeof forceRefresh === "undefined") { forceRefresh = false; }
var deferred = $q.defer(),
cacheKey = "basicCache",
basicData = null;
/*Grab from cache only if this is not a force refresh*/
if (!forceRefresh) {
basicData = basicDataCache.get(cacheKey);
$ionicLoading.hide();
}
if (basicData) {
console.log("Found data inside cache", basicData)
deferred.resolve(basicData);
$ionicLoading.hide();
} else {
$ionicLoading.show({ template: 'Loading...' })
$http.get(SERVER_URL + '/api/templates/getCategories?appId='+$rootScope.appId+'&mainId='+params.id)
.success(function(data) {
console.log('Received data via HTTP');
basicDataCache.put(cacheKey, data);
$ionicLoading.hide();
deferred.resolve(data);
console.log(data);
}).error(function(err) {
$ionicLoading.hide();
console.log('Error while making http call.');
deferred.reject();
});
}
return deferred.promise;
};
id 返回未定义,我尝试了堆栈溢出中的所有内容,但没有任何东西对我有用
【问题讨论】:
-
var params = { id : $stateParams.id, } 你的 $stateParams.id 是什么,你试过记录吗?
-
尝试记录 $stateParams.id 。我确定 $stateParams.id 值未定义。
-
当我记录它时,我得到了 id 的值,($stateParams 56d689f5e79f1c79311846bc)。它不是未定义的
-
好的,所以你是从视图中调用 loadlist 函数对吧?你能只显示你从视图中调用该函数的部分吗
-
{{data.categoryName}} 特别厨师
标签: angularjs parameters factory controllers