Ответ на «почему» это «потому что это не то, как это работает».
Исходный код AngularJS, который анализирует возможности для директивы здесь: https://github.com/angular/angular.js/blob/master/src/ng/compile.js#L829
function parseIsolateBindings(scope, directiveName, isController) {
var LOCAL_REGEXP = /^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/;
var bindings = {};
forEach(scope, function(definition, scopeName) {
var match = definition.match(LOCAL_REGEXP);
if (!match) {
throw $compileMinErr('iscp',
"Invalid {3} for directive '{0}'." +
" Definition: {... {1}: '{2}' ...}",
directiveName, scopeName, definition,
(isController ? "controller bindings definition" :
"isolate scope definition"));
}
bindings[scopeName] = {
mode: match[1][0],
collection: match[2] === '*',
optional: match[3] === '?',
attrName: match[4] || scopeName
};
});
return bindings;
}
Как вы можете видеть, это делает один проход через свойство scope
объекта и не рекурсивно спускаться в свойство объекта.
Чего вы хотите достичь? –
Я хочу переменную в моей директиве, которая является свойством объекта и привязана к переменной в контроллере. –
Итак, вы пробовали вот так: 'scope: {" dropdown.option ":" = selectedOption "}'? –