axe*_*xel 7 javascript controller angularjs angularjs-scope
简单的问题,我想在我的控制器范围内将一个函数应用于表达式.
这是我控制器里面的HTML
<p><span ng-if="paginaDetail.pubdate !== '' ">Vanaf {{paginaDetail.pubdate}}</span></p>
Run Code Online (Sandbox Code Playgroud)
这是我的javascript
$scope.formatMysqlTimestampToHumanreadableDateTime = function(sDateTime){
sDateTime = sDateTime.toString();
var sHumanreadableDateTime = sDateTime.substring(8, 10) + "/" + sDateTime.substring(5, 7) + "/" + sDateTime.substring(0, 4);
sHumanreadableDateTime += " " + sDateTime.substring(11, 13) + ":" + sDateTime.substring(14, 16);
return sHumanreadableDateTime;
};
Run Code Online (Sandbox Code Playgroud)
我试图做的是将formatMysqlTimestampToHumanreadableDateTime应用于paginaDetail.pubdate这样
<p><span ng-if="paginaDetail.pubdate !== '' ">Vanaf {{formatMysqlTimestampToHumanreadableDateTime(paginaDetail.pubdate)}}</span></p>
Run Code Online (Sandbox Code Playgroud)
或这个
<p><span ng-if="paginaDetail.pubdate !== '' ">Vanaf {{paginaDetail.pubdate|formatMysqlTimestampToHumanreadableDateTime}}</span></p>
Run Code Online (Sandbox Code Playgroud)
但两种方式都不正确.
第一种方法有效,但在控制台上我发现了这个错误
错误:[$ interpolate:interr] http://errors.angularjs.org/1.2.16/ $ interpolate/interr?p0 = Tot%20%7B%7BformatMysqlTimestampToHumanreadableDateTime(paginaDetail.endpubdate)%7D%7D&p1 = TypeError%3A% 20sDateTime%20is%20undefined t/< @http://mysite.local/js/libs/angular.min.js:6:443 g/r @http://mysite.local/js/libs/angular.min. js:78:354 Yd/this.$ gethttp://mysite.local/js/libs/angular.min.js:106:161 Yd/this.$ gethttp://mysite.local/js/libs/angular. min.js:109:285 f @ http://mysite.local/js/libs/angular.min.js:71:234 F @ http://mysite.local/js/libs/angular.min.js: 75:408 ve/http://mysite.local/js/libs/angular.min.js:76:457
而第二个根本不起作用.
你有什么建议吗?非常感谢.
如果我可以为基于控制器的操作提供替代选项...这对于过滤器看起来很棒
这个想法是在将输入放入html时使用过滤输入{{myDate|format}}.
过滤器定义如下:
myApp.filter('format', function () {
return function (input) {
//your date parser here
};
});
Run Code Online (Sandbox Code Playgroud)
或者你想用它做什么.这样您就可以重复使用它,而无需将该功能放在您希望使用它的每个控制器中.
这是一个你可以扩展的小提琴,让你去.
编辑仔细查看错误我认为你的实际问题.pubdate是没有填充(TypeError: sDateTime is not defined).尝试在函数中放置断点或查看控制台说的内容.
| 归档时间: |
|
| 查看次数: |
16379 次 |
| 最近记录: |