AngularJS conditionals in HTML Attribute
angularjs, html
Solution
For anyone else who comes across this (like I just did via Google), it looks like Angular recently added support for the ternary operator in expressions. I just used it successfully in 1.2.16 to dynamically update a tooltip (title) attribute. It seems to have first appeared in the documentation for 1.2.17, although they still generally discourage its use:
From: AngularJS: Developer Guide: Expressions
Apart from the ternary operator (a ? b : c), you cannot write a control flow statement in an expression. The reason behind this is core to the Angular philosophy that application logic should be in controllers, not the views. If you need a real conditional, loop, or to throw from a view expression, delegate to a JavaScript method instead.
Problem
How would you change an `html` attribute based on the model? I'm trying to change an input's placeholder text based on a length of an array: ``` <input placeholder="{{todos.length ? 'Insert todo' : 'Insert your first todo'}}" /> ``` But that doesn't seem to work... JS Bin code example.