分配我有一个Angular指令,其行为像ng-include,只是带有选项卡。 所以它有一个分层范围(scope: true
)。角 - 从指令
获取和设置父作用域的变量值我使用$解析:
var modelFn = $parse(attrs.ngModel);
获得优良工程这样var value = modelFn(scope)
甚至scope.$eval(attrs.ngModel)
, 但分配父范围不会改变的价值,它实际上创建在当前范围的变量:
modelFn.assign(scope, { ... });
这是令人沮丧的,任何帮助吗? 在此先感谢!
更新: 下面是一个例子
HTML:
<myDirective ng-model="myData"></myDirective>
指令:
{
replace: false,
scope: true,
template: '<button ng-click="changeData()"></button><div ng-include="templateUrl"></div>'
link: function(scope, element, attrs){
var modelFn = $parse(attrs.ngModel);
var value = modelFn(scope);
scope.templateUrl = data.replace('a', 'b');
scope.changeData = function(){
// Problem is here, assignment is on the current scope and not parent (or parent's parent and etc..)
modelFn.assign(scope, {name: 'new Value'});
}
}
}
为什么你就不能使用'$范围父'?为什么'$ parse'? – Claies 2015-02-09 22:24:03
你应该展示更多代码来解释你正在尝试做什么。我不清楚为什么以及如何使用ngModel – 2015-02-09 22:28:25
它并不总是直接的父母.. 我不能显示更多,老板不允许,反正这是解释问题 – 2015-02-09 22:34:11