加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 如何与指令控制器中的隔离范围变量进行交互?

发布时间:2020-12-17 06:50:24 所属栏目:安全 来源:网络整理
导读:我有指令myDirective,它有一个双向绑定隔离范围.当用户单击按钮时,我想将隔离范围更改为值.我认为隔离范围与$scope绑定,但我错了.我如何“抓
我有指令myDirective,它有一个双向绑定隔离范围.当用户单击按钮时,我想将隔离范围更改为值.我认为隔离范围与$scope绑定,但我错了.我如何“抓住”并与该隔离范围进行交互?它们是否与指令控制器的范围无关?

angular.module("app",[])
.controller("myCtrl",function($scope){
    $scope.ctrlTwoway = "Eggs";
})
.directive("myDirective",function(){
    return {
        scope: {
          twoway: =
        },template: "<button ng-click="changeTwoway()">Change two way isolate scope</button>",controller: function($scope,$element,$attrs){
            $scope.changeTwoway = function(){
                // get twoway from isolate scope,and update the value with "bacon"
                // $scope.twoway = "bacon" doesn't work 
                // nor does $attrs.twoway = "bacon" work,either :(
            };
        }
    }
});

和HTML

...
<div my-directive twoway="{{ctrlTwoway}}"></div>
Current value: {{ctrlTwoway}}

解决方法

我创造了一个 working version的plunker.

您不需要在twoway =“”上放置{{variable}}.只需改为twoway =“ctrlTwoway”即可工作.

另一件事是你声明绑定的方式.您正在使用=而不是’=’.

另一件事是:尝试在指令中使用链接函数而不是控制器函数.如果你想操纵DOM元素,这是一个很好的做法和正确的地方.

Source

我希望它有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读