首先,我应该提到我正在努力过渡到客户端编程。我对 js 很陌生。我以前的经验主要是 C 和一些汇编。几年前我还做了一些非常简单的 php,当时它还是 4.0。简而言之,对 javascript 来说是新手,但我会稍微考虑一下。
我已经做了很多搜索和潜伏,但无法纠正我的问题。
我正在弄清楚 AngularJS 的一些基础知识,它非常好,但是我很难理解指令的工作原理以及如何从自定义控件访问数据。
长话短说,我正在尝试使用 angularjs 为引导程序制作一个自定义控件,以便我可以在表单中正确使用它。
这是控件:http ://tarruda.github.com/bootstrap-datetimepicker/
我还有一些其他的控件想要进行,但我想如果我可以让这个控件运行起来,我可能会很容易地得到其他控件。
这是我目前拥有的基本框架的链接:http: //jsfiddle.net/uwC9k/6/
首先,我试图在模板工作后如何初始化控件(我认为此时我几乎是这样做的)
link: function(scope, element, attr) {
attr.$observe('dpid', function(value) {
if(value) {
$('#' + scope.dpid).datetimepicker({
language: 'en',
pick12HourFormat: true
});
}
当我把它放在链接指令中时,它什么也不做。我什至没有看到任何错误。scope.dpid 确实显示了控件的 ID,所以我认为它会起作用。但是,唉,我对 javascript 的微弱理解告诉我,我超出了范围,或者一些我无法访问该元素的废话。
一旦我开始这样做,我也不完全确定如何以表格形式访问这些数据。
任何帮助是极大的赞赏。
更新 得到了基本的工作,现在我需要知道如何将数据从新控件获取到我的控制器中。这是更新的新 jsfiddle 的链接。 http://jsfiddle.net/tmZDY/1/
更新 2 我想我对如何使这些数据可访问有一个想法,但是我对 javascript 知识的缺乏让我再次感到厌烦。
当我创建对象时,我就是这样做的。
var elDatepicker = element.datetimepicker({
language : 'en',
pick12HourFormat : true,
});
但是,当我尝试使用这个对象时,它似乎没有得到正确的对象,或者我只是缺少一些基本知识。无论哪种方式,这肯定会让我感到愚蠢。
console.log(elDatepicker.getDate());
这个失败了,getDate确实是一个方法,至少在插件的代码中看起来是这样的。