Angularjs 更改控制器和指令之间的范围变量
正如标题所说,我试图从指令和控制器更改范围变量。但它无法更改控制器/指令的值,以下是 如果您单击Angularjs 更改控制器和指令之间的范围变量,angularjs,scope,directive,Angularjs,Scope,Directive,正如标题所说,我试图从指令和控制器更改范围变量。但它无法更改控制器/指令的值,以下是 如果您单击Change按钮,它将更改控制器中的两个范围变量 然后,当单击从控制器更改的按钮(现在是指令)时,它将更改下拉变量,但不会更改选择变量,更改按钮无法再次更改变量 我还尝试按所述传递变量,但没有 成功 指令: app.directive("drop", [function() { return { scope: true, restrict: 'A', link: fun
Change
按钮,它将更改控制器中的两个范围变量
然后,当单击从控制器更改的按钮(现在是指令)时,它将更改下拉
变量,但不会更改选择
变量,更改
按钮无法再次更改变量
我还尝试按所述传递变量,但没有
成功
指令:
app.directive("drop", [function() {
return {
scope: true,
restrict: 'A',
link: function(scope, element, attrs) {
return element.bind('click', function(e) {
scope.drop = "changed to drop";
scope.select = "changed to select";
scope.$apply();
});
}
};
}]);
控制器:
function myController($scope) {
$scope.drop = "Initial value";
$scope.select = "Initial Value";
$scope.selection = function() {
$scope.drop = "changed from controller";
$scope.select = "changed from controller";
};
}
编辑:
更多测试表明,当更改指令中的范围变量时,控制器将无法再更改它。删除指令的范围
属性值,它将为指令提供它自己的范围使用范围:true
,这将创建一个子范围,该子范围通常从控制器范围继承。控制器范围更改将反映在子范围中,但不是相反around@devqon是删除作用域:true解析它,但在我的本地项目中,我镜像的是JSFIDLE中的内容,一旦单击指令事件,它将不起作用…+1它确实解析JSFIDLE示例。在我的本地机器中,我镜像的是JSFIDLE中的内容,一旦单击指令事件,它将不起作用。I我使用的是requirejs,不确定这是否会影响它