Передайте привязки к TemplateUrl в компоненте Angular

Мой компонентный объект выглядит так:

var options = {
    bindings: {
        title: '<',
        rows: '<'
    },
    controller: registers,
    templateUrl: function ($element, $attrs) {
        return '/app/dashboard/registers/register.html';
    }
};

Мне нужен доступ к привязкам title и rows в моей разметке register.html. Я понимаю $element и $attrs, но я не совсем уверен, как внедрить это в templateUrl, который является строковой ссылкой на файл HTML.

Я хотел бы иметь возможность использовать эти значения в шаблоне как таковые:

<p>Title: {{vm.title}}</p>
<p>Rows: {{vm.rows}}</p>

Может ли кто-нибудь указать мне направление, в котором templateUrl может использовать фигурные скобки для встраивания значений привязок в разметку?


person Jon Harding    schedule 28.07.2016    source источник


Ответы (1)


Это не относится к функции templateUrl, никаких дополнительных действий там выполнять не нужно.

Если параметр controllerAs не указан, идентификатор контроллера по умолчанию равен $ctrl, а не vm. Свойства области должны быть доступны в шаблоне как

<p>Title: {{$ctrl.title}}</p>
<p>Rows: {{$ctrl.rows}}</p>

Вот демонстрация, которая показывает это (спасибо @AWolf).

person Estus Flask    schedule 28.07.2016
comment
Вот основная скрипта, показывающая использование $ctrl в разметке. Эстус добавил ответ быстрее, поэтому я просто оставляю свою подготовленную скрипку. - person AWolf; 28.07.2016
comment
Не могли бы вы ответить на исходный вопрос, пожалуйста? Мне нужно выбрать между двумя URL-адресами шаблона в зависимости от значения одной из привязок, переданных в качестве параметра новым UI-маршрутизатором... - person Vi100; 25.10.2016
comment
@ Vi100 Можете ли вы создать вопрос, который отражает ваш конкретный случай? Нет хорошего способа сделать это. Если в вашем случае нет обходных путей, вам придется запрашивать шаблон вручную. - person Estus Flask; 25.10.2016