Это расширение предыдущего вопроса (и подобных вопросов), в котором я спросил, возможно ли, чтобы атрибут в директиве позволял передавать значение, подобное этому.
<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">
Теперь это не будет работать со стандартной двухсторонней привязкой "=". Я пробовал разные попытки, но всякий раз, когда вы пытаетесь что-то изменить в своей директиве, он пытается записать это обратно в переменную, и если это не правильная переменная, вы получаете стандартную ошибку «неназначаемая».
Но кто-то намекнул на то, что можно было бы создать новый тип переплета. Теоретически этот новый тип привязки может смотреть на переданное значение, чтобы увидеть, было ли оно логическим, целым числом, числом с плавающей запятой или строкой в одинарных кавычках. Если бы это было так, он мог бы использовать это и «отключить» двустороннюю привязку, чтобы ничего не было записано обратно. Если значение не является ни одним из переданных, то оно будет работать точно так же, как =, и установит двустороннюю привязку.
Я понятия не имею, как это сделать, но, возможно, смогу решить это, если подтолкнуть в правильном направлении. Ценность в том, что нам часто нужно выводить HTML с сервера (по причинам SEO), который устанавливает значение и часто не нужно связываться с чем-то в контроллере. Однако иногда требуется двусторонняя привязка.
Итак, в основном то, что я ищу, - это гибридная привязка @ и =, которая разумно знает, передается ли значение или имя переменной.
Любые идеи?