双向绑定Angularjs指令不工作

双向绑定Angularjs指令不工作

本文介绍了双向绑定Angularjs指令不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在试图找出解决办法,但我觉得我打了一个死胡同。

因此​​,这里是我的指令

directives.directive('后处理',函数($编译)
{
    返回{
        限制:'E',
        要求:'^ ngModel',
        范围: {
            ngModel:'='
        },
        链接:功能(范围,元素,ATTRS){
            VAR分析= scope.ngModel;
            EL = $编译(解析)(范围);
            element.html();
            //添加一些其他的HTML实体/样式。
            element.append(EL);
            的console.log(解析);
        }
    };
});

HTML的

<后处理NG模型=some_model.its_property的风格=填充顶:10px的; />

在某处控制器,我更新模型属性

some_model.its_property ='呼啦';

不过,这并不更新相应指令。它完美的作品时加载它告诉我,它可能不是完全是一个作用域的问题。


解决方案

这是简单得多,所以我删除了一些额外的code你必须在那里。

请看看在code以下或工作:

<!DOCTYPE HTML>
< HTML LANG =ENNG-应用=对myApp>
    < HEAD>
    <间的charset =UTF-8>
    <标题>文件< /标题>
    &所述; SCRIPT SRC =htt​​ps://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js>&下; /脚本>    <脚本>
        VAR对myApp = angular.module('对myApp',[]);
        myApp.directive('后处理',函数($超时){
            返回{
                限制:'E',
                transclude:真,
                范围: {
                    MYVARIABLE:'='
                },
                链接:功能(范围,元素,ATTRS){
                    $超时(函数(){
                        scope.myVariable ='再见!
                    },200);
                }
            };
        });        myApp.controller('myAppCtrl',['$范围,$超时',函数($范围,$超时){
            $ scope.myVariable = {
                值:'呼啦'
            };            的console.log($ scope.myVariable.value); // - >打印初始值
            $超时(函数(){
                的console.log($ scope.myVariable.value); // - >它是由该指令变更后打印值
            },2000);
        }])
    < / SCRIPT>    < /头>
    <机身NG控制器=myAppCtrl>
        <后处理我的变量=myVariable.value的风格=填充顶:10px的; />
    < /身体GT;
< / HTML>


  1. 控制器的初始值设置为'呼啦'

  2. 该指令接收由我的变量属性该值

  3. 使用双向数据绑定到 scope.myVariable 所做的任何更改将更新的 $ scope.myVariable 主控制器

  4. 几秒钟后 $ scope.myVariable 更改为'再见'

  5. 在您的console.log看看

$钟表$适用

这篇关于双向绑定Angularjs指令不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-29 17:54