您好我将此组件用作datetimepicker: https://dalelotts.github.io/angular-bootstrap-datetimepicker/
我在运行时生成了多个日期字段,此组件需要引用字段名称,如下面的代码所示
<datetimepicker
ng-model="param.DefaultValues[0]"
datetimepicker-config="{ dropdownSelector: '#{{param.Name}}' }" />
但是我在选择日期后收到angular.js 的错误:
我只问这个语法,如何解决?
完整的代码就是:
更新
对不起伙计们,你们都提出了相同的语法,
datetimepicker-config="{ dropdownSelector: '#' + {{ param.Name }} }"
但它没有用,当我打开页面时立即打破:
错误:[$ parse:syntax]语法错误:令牌&#39; {&#39;列无效键 表达式中的28 [{dropdownSelector:&#39;#&#39; + {{param.Name}}}] 从[{param.Name}}}开始。
我认为此处缺少单引号...
答案 0 :(得分:1)
与文档说的一样,dropdownSelector
需要一个字符串。所以你必须连接:
<datetimepicker
ng-model="param.DefaultValues[0]"
datetimepicker-config="{ dropdownSelector: '#' + param.Name }" />
答案 1 :(得分:1)
双花括号{{ }}
插值与id
属性一起使用,因为$compile service正在对本机HTML属性进行插值绑定。 datetimepicker-config
属性是AngularJS组件属性,其评估为Angular Expression。
不要在Angular表达式中使用插值{{ }}
。
<!-- DONT interpolate in Angular Expressions
<datetimepicker
ng-model="param.DefaultValues[0]"
datetimepicker-config="{ dropdownSelector: '#{{param.Name}}' }" />
-->
<!-- INSTEAD -->
<datetimepicker
ng-model="param.DefaultValues[0]"
datetimepicker-config="{ dropdownSelector: '#' + param.Name }" />
里面有什么角度表达?双花括号{{}}是角度表达式。 datetimepicker-config属性的值与angular无关,它只是一个JS对象{}
使用单向datetimepicker-config
绑定评估<
属性。 未评估为简单的JavaScript对象。它被评估为Angular Expression。双花括号为DOM interpolation binding.双曲面括号{{ }}
在Angular Expressions中不是合法语法。
有关详细信息,请参阅:
错误:$ parse:syntax
语法错误
描述
表达式中存在语法错误时发生。编译表达式时会抛出这些错误。错误消息包含更准确的错误描述,包括发生错误的表达式中的位置(列)。
要解决此问题,请详细了解AngularJS expressions,找出错误并修复表达式的语法。
答案 2 :(得分:0)
修复
<datetimepicker
data-ng-model="data.embeddedDate"
datetimepicker-config="{ dropdownSelector: '#' + {{ param.Name }} }" />
将 data-ng-model =&#34; data.embeddedDate&#34; 添加到您的ng-model