我是angularjs和coffeescript的新手。我在刷新视图时遇到了一个问题。
这是情景:
我有两种类型的页面:
现在首次登录app后,我访问第1页并选择一辆车添加到fourwheeler然后转到第2页并选择我最近添加车辆的四轮车标签,但现在如果我再次转到第1页 - >选择四轮车并检查第2页四轮车标签然后我找不到该项目。
当我在控制台中检查时,我发现数据中的新项目由API返回但在视图中丢失。所以我得出结论认为观点并不令人耳目一新。那么每次访问此页面时如何刷新视图?
我想我必须把$ scope。$ apply()。但我不知道我应该在哪里使用这个?
代码:
州档案:
angular.module('states.vehicles', [])
.config ($stateProvider) ->
$stateProvider
.state "app.vehicles",
url: "/vehicles/:itemType"
views: {
app: {
controller: 'VehiclesCtrl'
templateUrl: "templates/vehicles/vehicles.jade"
}
}
abstract: true
data:
isRoot: true
showBannerAd: true
tabs:
twowheeler:
name: 'Twowheeler'
direction: 'app.vehicles.items({itemType: "twowheeler"})'
id: 'twowheeler'
icon: 'icon-twowheeler'
fourwheeler:
name: 'Fourwheeler'
direction: 'app.vehicles.items({itemType: "fourwheeler"})'
id: 'fourwheeler'
icon: 'icon-fourwheeler'
.state 'app.vehicles.items',
url: ''
views: {
tabs: {
templateUrl: 'templates/vehicles/vehicles.items.jade'
controller: 'vehiclesItemsCtrl'
}
}
resolve:
items: ($stateParams, Vehicle) ->
offset = $stateParams.queryOffset || 0
Vehicle.query
type: $stateParams.itemType
count: 10
offset: offset
data:
isTab: true
loadingTransition: true
控制器文件:
class VehiclesItemsCtrl extends BaseCtrl
@register 'VehiclesItemsCtrl'
@inject '$scope', '$state', '$stateParams', 'Vehicle'
initialize: ->
@$scope.itemType = @$stateParams.itemType
@$scope.items = []
@$scope.query = @_vehicleQuery
# Private
_vehicleQuery: =>
@$stateParams.queryOffset = @$scope.items.length
@$state.current.resolve.items(@$stateParams, @Vehicle)
查看文件:
ion-view(title='Vehicles')
ion-content.v-offset-nav
section(ng-switch='itemType')
div(ng-switch-when='twowheeler')
section(ng-repeat="twowheeler in items", ui-sref='app.twowheeler({twowheelerId: twowheeler.twowheeler_id})')
a.row.list-item.list-colors
h3 {{twowheeler.name}}
div(ng-switch-when='fourwheeler')
section(ng-repeat="fourwheeler in items", ui-sref='app.fourwheeler({fourwheelerId: fourwheeler.fourwheeler_id})')
a.row.list-item.list-colors
h3 {{fourwheeler.name}}
nfinite-scroll(items='items', query='query')
请让我知道我要改变什么?
答案 0 :(得分:0)
ion-view(cache-view="false", title='Vehicles')
我在ion-view标签中添加了 cache-view =“false”,它可以完美地运行。