隔离范围'='传递字符串而不是对象

Isolated Scope '=' passes a string instead of the object

本文关键字:对象 字符串 范围 隔离      更新时间:2023-09-26

我试图将模型(对象)传递到指令的范围内,但它传递的是字符串而不是对象。

指令html.

<blabla obj="obj"></blabla>

指令:

.directive( 'blabla' , function(){
return {
    restrict : 'E',
    replace: 'true',
    scope :{
        obj : '=obj'
    },
    link : function(scope , elem , attrs){ console.log(attrs);
      scope.obj = attrs.obj;
    }
}})

然后在控制器中我有:

$scope.obj = { name : "obj"};

这是我在控制台得到的

obj: "obj"

我错过了什么吗?为什么它渲染'obj'作为一个字符串,而不是抓取对象?如果我在页面上打印对象,它可以工作,但它不能将其传递给指令。

不要使用attrs.obj。一旦链接函数运行,作用域中应该已经有obj了