Я пытаюсь создать собственный тег, подобный следующему:
<mytag type="Big" />
где type - это атрибут, который привязывается к компоненту. таким образом, что он устанавливает текст в ярлыке, как показано ниже:
<label>{{type}}</label>
... (другие компоненты)...
Как говорится в документации, у меня есть контроллер, который устанавливает тип по умолчанию:
$scope.type = "Small";
так что если я использую свой тег без атрибута, тип все равно будет установлен.
Я пытаюсь сделать привязку с помощью директивы:
angular.module('TestPage',[])
.directive('mytag',function() {
return {
restrict: 'E',
templateUrl: 'component.html',
scope: {
type: '='
}
}
});
Обратите внимание, что у меня есть соответствующие параметры ng-app в моем шаблоне компонента (ng-app = "TestPage" ).
Моя проблема в том, что привязка к типу не кажется фактически привязанной.
Я прочитал документацию о том, как привязать переменную к компонентам с помощью директивы. Согласно документации, вы можете делать такие привязки внутри области видимости. Скоменты, по-видимому, могут содержать "объект-хэш" (что бы это ни было!), Который создает что-то, называемое "изоляцией области" (???). Такие области могут представлять "локальные свойства" следующими способами:
@или @attr - привязать свойство локальной области к атрибуту DOM. Результатом всегда является строка поскольку атрибуты DOM являются строками. Если имя attr не указано, то локальное имя и Имя атрибута одинаково. Определенное и видимое определение области: {localName: '@myAttr'}, то свойство scope widget localName будет отображать интерполированное значение hello {{name}}. По мере изменения атрибута name будет установлено свойство localName в области виджета. Имя считывается из родительской области (не для области компонента).
Да??? Что все это связано с правильным синтаксисом для привязки?
= или = выражение - установить двунаправленную привязку между локальным свойством scope и родительским свойство области. Если имя attr не указано, локальное имя и имя атрибута совпадают. Определенное и видимое определение области: {localModel: '= myAttr'}, то свойство scope widget localName будет отображать значение parentModel в родительской области. Любые изменения в parentModel будут отображаться в localModel, и любые изменения в localModel будут отображаться в parentModel.
Извините? Что здесь сказано?
& или & attr - обеспечивает способ выполнения выражения в контексте родительской области. Если нет Имя attr указано, тогда локальное имя и имя атрибута совпадают. Данный и определение виджета области видимости: {localFn: 'increment()'}, затем изолировать свойство scope localFn будет указывать на оболочку функции для выражения increment(). Часто желательно передать данные из области изоляции через выражение и в родительскую область, это можно сделать, передав карту локальных имен переменных и значений в оболочку выражения fn. Например, если выражение является приращением (суммой), мы можем указать значение суммы, вызвав localFn как localFn ({amount: 22}).
Теперь я полностью смущен! У вас есть теги виджета и какая-то связанная функция, которую я должен написать в порядке, чтобы выполнить привязку??? Все, что я хочу, - привязать значение к тегу метки!
Я скопировал приведенный выше текст из документации (http://docs.angularjs.org/guide/directive), чтобы указать: что это doco читает как старая документация UNIX: действительно полезно для тех которые уже знают систему, но не так полезны для новичков, которые пытаются развить настоящий опыт. Со всеми учебниками, которые показывают, как выполнять простые задачи в AngularJS (отлично подходит для игрушечных приложений, но не настолько хороших для приложений на стороне клиента, которые я хочу построить), почему их нет в более продвинутых материалах???
Хорошо, мне пора быть более конструктивным.
Может кто-нибудь, пожалуйста, дайте несколько приятных простых примеров того, как делать различные привязки, которые эта документация пытается так описать? Примеры, которые показывают правильный синтаксис этих операторов и описаний области (на простом английском языке) о том, как они возвращаются к атрибуту, добавляемому к пользовательскому тегу???
Благодарим вас за терпение и заблаговременно за помощь.