AngularJS conditionals in HTML Attribute

Hi I'm new to Angular.

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...

http://jsbin.com/evohip/1

The ternary operator doesn't seem to work in this case, instead of doing this

{{cond ? true : false}}

Change it to

{{ exp && true || false }}

So your placeholder attribute would look like this (I have shortened it for demonstration purposes)

placeholder="{{todos.length > 0 && 'Insert' || 'Insert first'}}"

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.