Это расширение предыдущего вопроса (и подобных вопросов), в котором я спросил, возможно ли иметь атрибут в директиве, разрешить значение передаваться так.Угловая директива - создать новую привязку для двухсторонней и «передать по значению»
<my-directive att> //Evaluates to true
<my-directive att="true">
<my-directive att="false">
<my-directive att="51">
<my-directive att="51.234">
<my-directive att="'john smith'">
или, может использовать двустороннюю привязку к переменной в области, подобной этой.
<my-directive att="SomeVariableOnControllerScope">
Теперь это не будет работать со стандартным двусторонним связыванием «=». Я пробовал различные попытки, но всякий раз, когда вы пытаетесь изменить что-то внутри своей директивы, он пытается записать его обратно в переменную, и если это не соответствующая переменная, вы получаете стандартную ошибку «не назначаемая».
Но кто-то намекнул на то, что можно было бы создать новый тип привязки. Теоретически этот новый тип привязки мог бы смотреть на переданное значение, чтобы увидеть, было ли оно логическим, целочисленным, float или строкой в одинарных кавычках. Если бы это было, это могло бы использовать это и «отключить» двустороннюю привязку, поэтому ничего не получится. Если значение не является переданным, то оно будет делать точно как = и устанавливает двустороннюю привязку.
Я понятия не имею, как это сделать, но, возможно, сможешь его обработать, если дать толчок в правильном направлении. Значение в этом состоит в том, что нам часто приходится выводить HTML с сервера (по причинам SEO), который устанавливает значение и часто не нужно связывать что-то с контроллером. Однако иногда требуется 2 способа привязки.
Итак, в основном я ищу гибрид @ и = привязка, который разумно знает, передается ли значение или имя переменной.
Любые идеи?
Скорее вы можете использовать ** @ operator ** и передать дополнительный атрибут для типа данных. Затем вы можете передать значение в нужный тип данных внутри директивы. – Vivek