将对象绑定到指令的bindToController

时间:2015-09-15 10:02:32

标签: angularjs angularjs-directive

我有以下指令

.directive('showMessage',[function(){
    return{
        scope:true,
        restrict:'E',
        bindToController:{
            sprop:"="
        },
        templateUrl:'Communicator/Views/showMessage.html',
        controllerAs:"showMessCtrl",
        controller:function($scope){
            console.log(this.sprop);
        }
    }
}]);

我正在尝试将对象传递给sprop,就像这样

//base controller  
        $scope.mySplitterProp ={
            orientation:"vertical",
            collapsible:false,
            max:"75%"
        }

指令的调用就像这样

<show-message sprop="{{mySplitterProp}}"></show-message>

如果我使用sprop:“@”,这会在console.log中返回一个字符串(我需要对象) 如果我使用sprop:“=”(应该使用),我会收到类似

的错误
  

[$解析:语法]   http://errors.angularjs.org/1.4.5/ $解析/语法P0 =%7B&安培; P1 =无效%20key&安培; P2 = 2及P3 =%7B%7BmySplitterProp%7D%7D&安培; P4 =%7BmySplitterProp%7D%7D

我正在使用角度1.4

1 个答案:

答案 0 :(得分:1)

{{mySplitterProp}}将用值替换变量,并且在使用双向绑定时不会将其传递给指令范围&#39; =&#39; (因为它希望表达式改变......)。删除花括号。

https://docs.angularjs.org/guide/expression