2015-02-03 3 views
0

Я хочу передать строку в угловой директивы,Передаёт строку в AngularJS директиву

<person first-name="Don" last-name="Dood"></person> 
<person first-name="James" last-name="Jawalla"></person> 

и получить этот результат HTML:

<p>Don Dood</p> 
<p>James Jawalla</p> 

Вот что я в настоящее время.

Директива:

.directive('person', function(){ 
    return { 
    scope: { 
     firstName: '@', 
     lastName: '@' 
    }, 
    templateUrl: 'person-template.html' 
    } 
}); 

люди-template.html

<p>{{ firstName }} {{ lastName }}</p> 

Однако нет значения, появляющегося на ПгвЬЫат или LastName. Что мне не хватает?

Это простой вопрос, поэтому я удивлен, что нет хорошего ответа на SO. Ближе всего я обнаружил, что это question, но он не говорит, как показать строку в HTML.

+0

проблема: http://stackoverflow.com/questions/14050195/ –

+0

использовать '=' вместо '@' –

+0

@pankajparkar, вы имеете в виду то, что я сейчас делаю? –

ответ

1

«@» - это правильная привязка к сфере, используемая здесь, когда строки передаются в директиву.

Я считаю, что вам не хватает ограничения: «E» в вашем DDO, но кроме этого ваш код в порядке.

+0

Спасибо, я отвечу на ваш ответ - можете ли вы принять к сведению в своем ответе, что «@» - правильный символ для использования при передаче строк в директиве? Люди собираются запутаться, увидев другие комментарии на этой странице, которые предлагают использовать двустороннюю привязку данных к другим объектам области видимости. –

+0

Нет. Это неправильно. По умолчанию ограничение находится на «EA», поэтому OP уже заявила, что проблема была где-то в другом месте, так что это ничего не делает ... –

+0

@Bhojendra Nepal, ограничение по умолчанию для 1.3+ - это EA. Для версий 1.2 и ниже ограничение по умолчанию - «A». Вы должны признать, что вы ошибались, и двигайтесь дальше ... – pixelbits

0

Nevermind, этот код работает. У меня была ошибка в другом месте моего кода, который заставлял это работать не так. Не удается удалить, так как он уже имеет ответ.

Напоминание: если вы передаете строку в качестве атрибута, используйте знак @ (как и в вопросе). Если вы передаете объект, переменную и т. Д., И вы хотите, чтобы он был двусторонним, используйте знак =.

+1

Вы ошибаетесь. Хотя вы можете удалить свой ответ и вопрос, я удалю свой ответ ... –

+0

@BhojendraNepal Я считаю, что ваш ответ должен проголосовать. потому что вы ответили, как только был задан вопрос. –

+1

Спасибо. Но это не то, для чего я здесь. Просто помогая людям правильно ... –

Смежные вопросы