Доступ к значению атрибута внутри шаблона в Angularjs

видимый невидимо

Я создал директиву и передал атрибут как объект (пара имя / значение) строки. Однако, если я попытаюсь получить доступ к значению атрибута внутри шаблона, оно не будет оценено. Атрибут передается, как показано ниже

<testcomponent  myInfo="{firstname:'green',lastname:'Woods'}"></testcompone>

Шаблон определяется, как показано ниже

   template: '<div>This will not run fine..! </div>'+
        '<div> This first name is: {{myInfo.firstname}} </div>',

Я создал изолированную область, как показано ниже

  scope: {
       info: '=myInfo',
    },

Jsfiddle - это @ https://jsfiddle.net/visibleinvisible/be4ww6vu/

Переменная ({{myInfo.firstname}}) должна быть оценена, но этого не происходит. Я ищу решение, которое не требует создания контроллера (я тоже ошибаюсь)

Заранее спасибо, Джейсон

random_user_name

Есть несколько проблем (указанных ниже), а также несколько советов по использованию Angular.

Вот рабочая скрипка

  1. Angular чувствителен к регистру и "специфичен" в именах атрибутов. Если вы хотите, чтобы ваш атрибут был myInfoв вашей директиве, то в разметке вам нужно установить его как my-info. Angular автоматически адаптирует имя из my-infoразметки в myInfoдирективу.
  2. Ваша разметка (где вы пытаетесь вывести имя) ссылается myInfo, однако ваше объявление области назначает это переменной области info. Чтобы вывести имя, вам нужно изменить его на {{info.firstname}}.

Ниже приведен код исправления с комментариями:

<div ng-app="testApp" >
  <!-- Issue #2: If you want camel-case "myInfo", angular expects the attribute to be "my-info". -->
  <test-component   
  my-info="{firstname: 'green',lastname: 'Woods'}"/>
</div>  

И директива:

var module = angular.module('testApp', [])
    .directive('testComponent', function () {
    return {
        restrict: 'E',
        // Issue #1: The template referenced 'myInfo', but your scope was assigning that to 'info'.
        template: '<div>This will not run fine..! </div>'+
        '<div> This first name is: {{info.firstname}} </div>',
        scope: {
           /* Hints: 
                = is two way-binding "deep" watch.  
                =* is "shallow" watch, and on this simple object, that is all you need.  
                @ is text-binding (for reference)
           */
           info: '=*myInfo',
        },
        controller: function($scope) {
        },
        link: function (scope, element, attrs) {
        }
    };
});

Наконец - обычно (по моему опыту) вы не устанавливаете значение атрибута непосредственно в разметке, а скорее ссылаетесь на $scopeпеременную из своего контроллера и назначаете значение в своем контроллере.

Эта статья взята из Интернета, укажите источник при перепечатке.

Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.

Отредактировано в
0

я говорю два предложения

0обзор
Войти в системуУчаствуйте в комментариях

Статьи по теме

AngularJS - страница загружается до инициализации переменной области видимости

Простой холст в директиве angularjs

доступ к значению текстового поля angularjs в контроллере

AngularJS Печать Да или Нет на основе логического значения

Ошибка: не удалось найти хромированный драйвер, следуя официальному руководству angularjs

Формат входного значения в Angularjs

Таблица сортировки AngularJs для уже вставленных данных

Привязка / моделирование к определенному символу в строке в AngularJS

"текущий запрос не является составным" angularjs и весенняя загрузка

AngularJS: тайм-аут не работает

Должны ли веб-сервисы AngularJS возвращать полную копию ответа?

AngularJS: получить свойство объекта в массиве, сопоставив другое свойство?

Повторитель фильтра AngularJS с несколькими значениями

AngularJS как добавить дни / месяцы / годы к дате

сортировка массива в angularjs

angularJS $ изменение области не обновляет представление

Транспортир: фиктивный атрибут angularjs

Можно ли поместить всю форму в ОДНУ директиву AngularJs?

AngularJS: Каким образом контроллеры и фабрики / службы должны быть структурированы с помощью богатой иерархической объектной модели?

AngularJS - модель данных не привязывается в раскрывающемся списке

Показать и скрыть контроллер не работает, AngularJS

Привязка AngularJS не обновляет модель

Angularjs манипулирует каждым из повторяющихся элементов

Как исключить объект из массива в фильтре AngularJS?

Загрузите файл с сервера и укажите имя файла в angularjs

Как показать нижний колонтитул столбца в сгруппированной сетке в пользовательской сетке AngularJS?

Модель AngularJS не загружает данные в представление

Маршрутизация не работает в AngularJS

AngularJS фильтр с несколькими параметрами

Отключить кнопку отправки, если форма недействительна с AngularJS

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    TypeError: store.getState não é uma função. (Em 'store.getState ()', 'store.getState' é indefinido, como posso resolver esse problema?

  3. 3

    В типе Observable <unknown> отсутствуют следующие свойства из типа Promise <any>.

  4. 4

    Как добавить Swagger в веб-API с поддержкой OData, работающий на ASP.NET Core 3.1

  5. 5

    How to click an array of links in puppeteer?

  6. 6

    Merging legends in plotly subplot

  7. 7

    ViewPager2 мигает / перезагружается при смахивании

  8. 8

    Отчеты Fabric Debug Craslytic: регистрация, отсутствует идентификатор сборки, применить плагин: io.fabric

  9. 9

    How to normalize different curves drawn with geom = "step" when using stat_summary

  10. 10

    无法通过Vue在传单中加载pixiOverlay

  11. 11

    как я могу удалить vue cli 2?

  12. 12

    Как я могу нарисовать заполненный прямоугольник в JFreeChart?

  13. 13

    SQL Вычтите две строки друг от друга в одном столбце, чтобы получить результат

  14. 14

    Elasticsearch - Нечеткий поиск не дает предложения

  15. 15

    Single legend for Plotly subplot for line plots created from two data frames in R

  16. 16

    Описание моего типа Parser как серии преобразователей монад

  17. 17

    Как изменить цвета запятых и скобок в VS Code

  18. 18

    Сброс значения <input type = "time"> в Firefox

  19. 19

    Почему прокси в vue.config.js 404

  20. 20

    Как установить параметр -noverify с gradle ktx для робоэлектрических тестов Android?

  21. 21

    В чем разница между ifstream, ofstream и fstream?

популярныйтег

файл