изменить вложенный шаблон angularjs во время выполнения - PullRequest
1 голос
/ 27 сентября 2019

У меня есть шаблон, который вложен в другой шаблон, который я хочу загрузить, когда нажимаю на кнопку.Таким образом, вложенный шаблон загружается динамически.Это то, что я сделал до сих пор.

Это основной файл body.html (загружается, когда в браузере указывается URL, например, http://url # / newtemplate )

<div ui-view> </div>

Другой раздел кода был удален для краткости

Это файл new_template.html, который, как я ожидаю, будет отображаться при нажатии кнопки.

Когда я помещаю имя шаблона непосредственно, как показано ниже, т.е. когда я жестко его кодирую,

<div ui-view="number1"></div>

Он загружает шаблон полностью.

Это динамическая модель

<button ng-model="template_name" ng-value="number1">Button1</button>
<div ui-view="{{template_name}}"></div>
{{template_name}}

Выше не загружает шаблон, как я ожидал.но она показывает строку номер 1 при нажатии кнопки

Что я могу сделать для нее, чтобы загрузить шаблон ....

Это мой контроллер

.state('parent',{
    url: '/newtemplate',
    views:{
        '':{
            templateUrl: "parent.tpl",
            contoller:"controller",
        },
         'number1@parent':{
            templateUrl:"number1.tpl",
            contoller:"formcontroller" 
        }, 
        'number2@parent':{
            templateUrl:"number2.tpl",
            contoller:"formcontroller"
        }, 
        'number3@parent':{
            templateUrl:"number3.tpl",
            contoller:"formcontroller"
        }
    }
})

Как ни странно, когда я использовал точечную нотацию, она не работала, поэтому мне пришлось использовать метод абсолютного именования.Я также заметил, что когда я добавил вложенные представления, как показано выше, время, необходимое для загрузки шаблона, заняло очень много времени.

Пожалуйста, я был бы признателен за любую помощь, которая может позволить мне загрузить вложенное представление ввремя выполнения (возможно, очень быстрое)

1 Ответ

0 голосов
/ 27 сентября 2019

Я не уверен, что вы можете использовать uiView для динамической загрузки html.Я бы попробовал другие возможные решения:

  • Использовать директивы
  • Использование ngInclude

Я оставлю вам пример с ngInclude: https://next.plnkr.co/edit/M5hl71mXdAGth2TE?open=lib%2Fscript.js&deferRun=1&preview

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...