如何调用函数来更改指令中的值?

时间:2013-02-04 20:38:52

标签: angularjs angularjs-directive

我需要这样的东西,但它不起作用

.directive('dateTime', function(){
        return {
            restrict: 'E',
            replace: true,
            scope:'=value',
            template: "<div>{{value.format('mmm dd yy')}}"</div>", 
                                    // ^here: applying a function to the scope  
         };
    });

2 个答案:

答案 0 :(得分:1)

您已经使用scope: '=value'创建了一个隔离范围,因此这是一个全新的范围,不会从父范围继承原型。这意味着您要调用的任何函数都必须来自

  1. 您注入指令的服务,过滤器等
  2. 另一个指令的控制器,使用require来获取访问权限(请参阅Angular主页上的tabspane指令以获取示例)
  3. 您在指令控制器或$ scope上的链接函数中定义的函数(基本上是相同的)示例:https://stackoverflow.com/a/14621193/215945
  4. 使用'&amp;'语法,使指令能够调用在父作用域上声明的函数。示例:What is the best way to implement a button that needs to be disabled while submitting in AngularJS?

答案 1 :(得分:0)

您可能只是在寻找date filter

{{value | date:'MMM dd yy'}}

但你也可以这样做:

app.directive('dateTime', function(){
        return {
            restrict: 'E',
            replace: true,
            scope:'=value',
            template: "<div>{{value | date:'MMM dd yy')}}"</div>", 
                                    // ^here: applying a function to the scope  
         };
    });