Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS-双向绑定指令,接受可变数量的参数?_Javascript_Angularjs_Angularjs Directive - Fatal编程技术网

Javascript AngularJS-双向绑定指令,接受可变数量的参数?

Javascript AngularJS-双向绑定指令,接受可变数量的参数?,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我正在开发一个内联编辑器指令,它将大量参数封装到一个大对象中,以保持整洁。到目前为止,我在父范围中有以下内容: $scope.inlineEditParams = { rendererUrl: null, content: { body: { selector: "#content-body", value: $scope.content.body } } }; 这就是我在模板中注入指令

我正在开发一个内联编辑器指令,它将大量参数封装到一个大对象中,以保持整洁。到目前为止,我在父范围中有以下内容:

$scope.inlineEditParams = {
    rendererUrl: null,
    content: {
        body: {
             selector: "#content-body",
             value: $scope.content.body
        }
    }
};
这就是我在模板中注入指令的方式:

<div inline-edit params="inlineEditParams"></div>

因此,对inlineEditParams对象的更改显然反映在指令和父控制器中。但是,如何在父$scope.content.body和inlineEditParams.content.body值之间进行双向绑定,以便父控制器或指令的更改将立即反映在两者上?我不想传入父$scope.content,因为该指令要求参数以特定的方式格式化。

我认为在该指令中,您可以使用watchCollection方法监视参数的更改。我知道我可以$watch监视所有内容,但这感觉像是一种黑客行为。基本上,我想说的是,在父作用域$scope.content.body==$scope.inlineEditParams.content.body.value上,让它们在两个方向上相互绑定。我没有尝试过这个方法,但我认为它会起作用。我假设父$scope.content.body是一个基本类型的字符串。您能否尝试将其更改为object,然后将其指定给指令参数?它应该可以进行双向绑定$scope.inlineEditParams.content=
scope: {
    params: '='
}