范围更改时如何显示模板[Angular指令]

时间:2016-02-11 14:48:37

标签: javascript angularjs

这是我的指示:

function ajaxMessageData()
{
    var ajaxMessage = {
        link: link,
        restrict: "EA",
        template: "success",
        scope: {
            success: '='
        }
    };

    return ajaxMessage;

    function link(scope, elm, attrs)
    {

            console.log(scope.success);
            scope.$watch(attrs.success, function (newValue) {
                console.log("Changed to " + newValue);
            });

    }
}

并在html中:

<ajax-message success="vm.message"></ajax-message>

问题在于范围内指令我从vm.message得到初始消息(它是我的控制器var)但是当我的vm.message更改它没有在指令中检测到...而且我想模板显示只有当我从vm.success获得成功消息时。有谁知道怎么做到这一点? 感谢

1 个答案:

答案 0 :(得分:5)

  1. 您将错误的参数传递给mylist = split(df, f = df$x)[df$x[duplicated(df$x)]] names(mylist) = c('df1', 'df2') list2env(mylist,envir=.GlobalEnv) # to separate the data frames 。它应该是一个表达式 - 而不是$watch对象的值。
  2. 您可以使用attrs指令来控制可见性。
  3. 不确定是否有意,但成功模板可能需要卷曲绑定:ng-if
  4. 示例:

    "{{ success }}"

    ...或者查看此plunker的实际操作。