Решение может быть простым, но я не могу его решить. Просто попытайтесь отобразить данные в следующем представлении от контроллера после нажатия на тег привязки на первой странице view.the, но данные успешно отображаются.
//Это мой App.js
.config(function($stateProvider,$urlRouterProvider) {
$stateProvider
.state('Login',{
url:'/Login',
templateUrl:'templates/Login.html',
controller:'SignInCtrl'
})
.state('saledetailstable',{
url:'/saledetailstable',
templateUrl:'templates/saledetailstable.html',
controller:'SignInCtrl'
})
//Это мой первый взгляд
<tr ng-repeat="item in saleitems">
<td>{{item.id}}</td>
<td>{{item.totalqnty}}</td>
<td>{{item.totalprice}}</td>
<td><a ng-click="additems()">{{item.inv_no}}</a></td>
<td>{{item.inv_date}}</td>
<td>{{item.sync_status}}</td>
<td>{{item.device_Id}}</td>
<td>{{item.U_id}}</td>
</tr>
//Это мой код контроллера
$scope.additems = function ()
{
$scope.saledetailsitems=[{ id: '45', item: 'hello' }];
$state.go('saledetailstable');
}
//Это мой следующий взгляд
<tr ng-repeat="item in saledetailsitems">
<td>{{item.id}}</td>
<td>{{item.item}}</td>
</tr>
Изменить эту строку
<td><a ng-click="additems()">{{item.inv_no}}</a></td>
с
<td><a ng-click="additems(item)">{{item.inv_no}}</a></td>
и передать этот item
в следующем представлении.
На следующей странице вы можете получить массив для item
и отобразить данные из него.
ИЛИ
В качестве альтернативы вы можете назначить его $rootScope
и получить его в следующем представлении.
С уважением.
@misha130 ответ должен работать. Еще одна альтернатива для определения параметров.
вы можете использовать атрибут params в config состояния:
.config(function($stateProvider,$urlRouterProvider) {
$stateProvider
.state('Login',{
url:'/Login',
templateUrl:'templates/Login.html',
controller:'SignInCtrl'
})
.state('saledetailstable',{
url:'/saledetailstable',
templateUrl:'templates/saledetailstable.html',
controller:'SignInCtrl',
params: {
item: undefined
}
})
Этот синтаксис является совершенно новым, вы можете найти его в этой документации: http://angular-ui.github.io/ui-router/site/#/api/ui.router.state.$stateProvider.
Кроме того, этот билет полезен: как передавать параметры с помощью ui-sref в ui-router для контроллера
Кстати, для большей ясности я предлагаю вам использовать разные контроллеры для состояний.
Это один из возможных способов сделать это, что, на мой взгляд, самое чистое. Это немного сложно, но я предлагаю вам попробовать.
Прежде всего настройте необязательный параметр в нашей конфигурации маршрутизации с помощью: var
.config(function($stateProvider,$urlRouterProvider) {
$stateProvider
.state('Login',{
url:'/Login',
templateUrl:'templates/Login.html',
controller:'SignInCtrl'
})
.state('saledetailstable',{
url:'/saledetailstable:id',
templateUrl:'templates/saledetailstable.html',
controller:'SignInCtrl'
})
После этого в state.go добавим параметр, который является идентификатором, и проверим stateParams на входе
app.controller('SignInCtrl',
function ($scope,$stateParams) {
$scope.additems = function ()
{
$state.go('saledetailstable', {"id": 45);
}
//Check for the state params when the view changes
$scope.$on('$ionicView.enter', function () {
if($stateParams.id){
$scope.saledetailsitems=[{ id: '45', item: 'hello' }];
}
});
});
Теперь это более простой способ
app.controller('SignInCtrl',
function ($rootScope,$scope) {
if($rootScope.saledetailsitems)
$scope.saledetailsitems = $rootScope.saledetailsitems;
$scope.additems = function ()
{
$rootScope.saledetailsitems=[{ id: '45', item: 'hello' }];
$state.go('saledetailstable');
}
});
Корнеплод - это основная часть всего приложения. Это происходит, когда вы создаете приложение. Таким образом, вы можете хранить вещи, которые совместно используются для просмотра. Очевидно, что недостатком этого является то, что его память неэффективна и неаккуратная