Nano Hash - криптовалюты, майнинг, программирование

Переменная $stateParams не определена, если доступ к представлению осуществляется напрямую?

У меня есть два представления VIEW1 и VIEW2. Обычно VIEW1 не нуждается в переменных $stateParams для работы при прямом доступе. Но при доступе из VIEW2 мне нужно передать переменные $stateParams в VIEW1 из VIEW2.

app.controller('View1Ctrl', function($scope, $stateParams, $state) {

   $scope.varView1 = $stateParams.view2Data.varView2;

)}

.state('app.view1', {
  url: '/view1',
  params: {view2Data: null },
  views: {
    'menuContent': {
      templateUrl: 'templates/view1.html',
      controller: 'View1Ctrl'

    }
  }
})

app.controller('View2Ctrl', function($scope, $stateParams, $state) {

  $state.go('app.view1', {view2Data: {varView2: 'varView2 Value' } });

)}

Проблема в том, что если переменные $stateParams закодированы в контроллере VIEW1, это создаст неопределенную проблему $stateParams vars в случае прямого доступа к VIEW1.

Я думаю о чем-то в контроллере VIEW1, например if SET ($scope.varView1 = $stateParams.view2Data.varView2;){ continue } .

Любые решения для этого?


  • Пожалуйста, объясните, почему мне дали -1? 22.02.2016
  • Может быть, вы можете показать нам свои маршруты, чтобы сделать ваш вопрос более понятным 22.02.2016
  • я обновил свой вопрос 22.02.2016
  • Почему бы просто не использовать другой контроллер для view2? В качестве альтернативы, оберните условное выражение вокруг доступа к данным, например, $scope.varView1 = $stateParams.view2Data ? $stateParams.view2Data.varView2 : 'some default value'; или даже проще, установите значение по умолчанию в объекте params 22.02.2016
  • VIEW2 уже имеет отдельный контроллер View2Ctrl 22.02.2016
  • Пробовал if($stateParams.view2Data!=null){ $scope.varView1 = $stateParams.view2Data.varView2; } но выдает ошибку 22.02.2016

Ответы:


1

Объект конфигурации состояния params позволяет вам устанавливать значения по умолчанию, поэтому вам, вероятно, следует использовать что-то вроде

params: {
    view2Data: {
        varView2: null
    }
}

По крайней мере, тогда вы не получите сообщение об ошибке "undefined is not a object" для $stateParams.view2Data.varView2.

22.02.2016
  • Я добавил cache: false,, иначе контроллер View1 сохранял $stateParams.view2Data.varView2 как нуль 22.02.2016
  • @user2985035 user2985035 К чему добавлено cache: false? Нет свойства cache ни в конфигурации состояния, ни в $state.go. 22.02.2016
  • А именно: .state('app.view1', { cache: false, url: '/view1', params: {view2Data: { varView2: null } }, views: { 'menuContent': { templateUrl: 'templates/view1.html', controller: 'View1Ctrl' } } }) 22.02.2016
  • ОК, но у меня это работает так !! В противном случае, если я не использую cache: false, я должен дважды перейти к View1, чтобы заполнить значение переменной varView2. 24.02.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..