Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在angularjs中创建自定义控件的推荐方法_Javascript_Angularjs - Fatal编程技术网

Javascript 在angularjs中创建自定义控件的推荐方法

Javascript 在angularjs中创建自定义控件的推荐方法,javascript,angularjs,Javascript,Angularjs,目前,我正在学习Angularjs,构建定制组件有很多要求。其中之一是日期格式化程序-以下是示例angular module指令javascript: var myApp = angular.module('myApp', []); myApp.directive('datetime', function () { return { restrict: 'E', scope: { value: '@value' }, template:

目前,我正在学习Angularjs,构建定制组件有很多要求。其中之一是日期格式化程序-以下是示例angular module指令javascript:

var myApp = angular.module('myApp', []);

myApp.directive('datetime', function () {
    return {
        restrict: 'E',
        scope: { value: '@value' },
        template: 
            '<span>{{value | date: "dd/MM/yyyy @ hh:mma"}}</span>'
        }
    }
);
由以下html使用:

<tr ng-repeat="item in results.OpenProjects">
    <td><datetime value="{{ item.WhenCreated }}"></datetime></td>
</tr>
上面的操作很好,但我想知道我是否打算用我已经完成的方式编写控件

有没有人做过这样的工作,可以插手他们的想法


谢谢。

此场景中的datetime指令似乎有点过火,因为它做得不太好..任何事情

您的格式设置由日期筛选器完成,该筛选器是进行格式设置的正确位置

您的datetime指令也可以是

<span>{{item.whenCreated | date: "dd/MM/yyyy @ hh:mma"}}</span>

指令用于DOM操作。所以,在非角度场景中,无论你在哪里做$。使用指令

看起来不错,但我现在只是在学习指令。由于您使用的是相同的名称,因此可以简单地将值写为“@”。如果要从生成的HTML中删除,您可能还需要包括replace:true。谢谢。我应该用前缀ng来命名我的控件也许你应该看看,他们已经有了一个日期选择器和很多好的指令。Angular在指令方面有很好的文档:我知道这可以像你说的那样完成,但这会导致html页面上日期格式标记的激增。我采用这种方法的原因是为了本地化日期格式,以防将来需要更改。@dubs您可以编写自己的日期筛选器,默认为首选格式,允许覆盖和/或短别名到不同的格式。@Steven很好。我同意你的建议,因为这似乎是一种更干净的方法。我已经做了一些事情,比如将“总天数”格式化为9y 10m 2d。毫无疑问,还会有很多人!