Код: Выделить всё
var person = {
name: 'Alice',
age: 33,
favorite_color: 'purple',
address: {street: '123 Some St', state: 'NY'}
};
< /code>
Администратор может захотеть скрыть поле или запустить действие на основе условного подобного: < /p>
((person.age > 20) or (person.favorite_color == 'red')) and (person.address.state == 'NY')
Если приложение было . eval () . Но для приложения, которое включает в себя несколько языков, это не работает. Похоже, что нужно было бы создать небольшой DSL с реализациями для разных платформ, например, < /p>
// JS
var condition = "(person.age > 20) or (person.favorite_color == 'red')";
var isMatch = ExpressionLanguage.eval(condition, {
person: {...}
})
// PHP
$condition = "(person.age > 20) or (person.favorite_color == 'red')";
$isMatch = ExpressionLanguage::eval($condition, array(
'person' => array(...),
));
< /code>
Я столкнулся с усами, который использует аналогичный портативный подход к шаблоне. Однако его дизайн специально «без логики» и не поддерживает условия. Никогда не судя по тому, что это кажется достаточно общей проблемой. Как другие обращались к желанию переносных условий?
Подробнее здесь: https://stackoverflow.com/questions/341 ... t-bindings
Мобильная версия