модель никогда не обновляется внутри контроллера

0

Вот app.js

  .state('search', {
      url: '/search',
      templateUrl: 'templates/search-pages/home.html',
      controller: 'SearchController'
  })  

  .state('search/search-form', {
      url: '/search/search-form',
      templateUrl: 'templates/search-pages/search-form.html',
      controller: 'SearchController'
  })

  .state('search/search-form-settings', {
      url: '/search/search-form-settings',
      templateUrl: 'templates/search-pages/search-form-settings.html',
      controller: 'SearchController'
  })  

  $urlRouterProvider.otherwise('/search');

home.html

<ion-view>
<ion-nav-buttons side="right">
  <a class="button button-icon icon ion-android-search" href="#search/search-form"></a>
</ion-nav-buttons>
  <ion-content class="padding">    
        <div ng-repeat="data in searchResult">
                {{data.title}}
        </div>     
  </ion-content>
</ion-view>

При нажатии кнопки поиска внизу открывается страница.

searchForm.html:

<ion-nav-buttons side="right">
  <button class="button button-icon icon ion-android-done" ng-disabled="npubmUsrLocForm.form.$invalid"  ng-click="searchByTag()"></button>  
</ion-nav-buttons>

здесь searchControllet.js:

  $scope.searchResult = [{title:"this is 1"},{title:"this is 2"}];
  alert("init");
    $scope.searchByTag = function()
    {

    $scope.searchResult.push({title:"this is 3"});
    $scope.searchResult.push({title:"this is 4"});
    $state.go('search');
    alert($scope.searchResult.length);

в этом предупреждении он показывает lengh 4, но на HTML-странице он отображает только {title:"this is 1"},{title:"this is 2"}

Теги:
ionic-framework
ionic

1 ответ

1

две вещи, которые необходимо исправить, - это ваши состояния и ваши URL:

.state('search', {
  url: '/search',
  templateUrl: 'templates/search-pages/home.html',
  controller: 'SearchController'
})  

.state('search.search-form', {
  url: '/search-form',
  templateUrl: 'templates/search-pages/search-form.html',
  controller: 'SearchController'
})

.state('search.search-form-settings', {
  url: '/search-form-settings',
  templateUrl: 'templates/search-pages/search-form-settings.html',
  controller: 'SearchController'
})  

$urlRouterProvider.otherwise('/search');

Состояния должны быть в формате "parent.child", а не "parent/child".

URL-адреса относительно исходного URL-адреса.

Тогда ваш HTML должен, вероятно, быть чем-то вроде:

<ion-view>
  <ion-nav-buttons side="right">
    <a class="button button-icon icon ion-android-search" ui-sref="search.search-form"></a>
  </ion-nav-buttons>
  <ion-content class="padding">   
    <ui-view/> 
    <div ng-repeat="data in searchResult">
            {{data.title}}
    </div>     
  </ion-content>
</ion-view>
  • 0
    ui-sref="search.search-form" не search-form.html к search-form.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню