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

标签 javascript angularjs angularjs-directive angularjs-scope

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

指令 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;
    }
}})

然后在 Controller 中我有:

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

这就是我在控制台中得到的内容

obj: "obj"

我错过了什么吗?为什么它将“obj”渲染为字符串而不是获取对象?如果我在页面上打印该对象,它可以工作,但无法将其传递到指令中。

最佳答案

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

关于javascript - 隔离范围 '=' 传递字符串而不是对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33096174/

相关文章:

javascript - 如何在 Service Worker 中动态加载 Javascript 文件?

Javascript 函数总是返回 null

unit-testing - 单元测试 AngularJS 服务

javascript - typescript 中带有参数类型的 Angular ui-state

jquery - 如何在新窗口中打开链接(以及同一新窗口中的所有后续链接)?

javascript - 如何将 ajax 响应显示到 bootstrap 模式中

javascript - 需要帮助理解为什么在指令链接函数中创建对 $scope 的引用有效

angularjs - 类型错误 : Cannot read property 'childNodes' of undefined in AngularJS directive

javascript - 使用理解表达式的自定义指令

javascript - 按钮未正确更新输出