所以我认为这是:
<tr ng-repeat="currentRow in rowsToRender">
<td>{{currentRow[0]}}</td>
<div rmx-schedule-row time="currentRow" time-from="{{currentRow[0]}}" time-to="{{currentRow[1]}}" date="{{dateStr}}"/>
</tr>
指令:
rmx.directive('rmxScheduleRow', function(scheduleService) {
return {
scope: {
time: "=",
date: "@",
timeFrom: "@",
timeTo: "@"
},
controller: [
"$scope", "$rootScope", "$element", "$attrs", "$http",
function($scope, $rootScope, $elm, $attrs, $http) {
$attrs.$observe('timeFrom', function(val) {
console.log("change has been detected");
console.log($scope);
console.log($attrs);
console.log(val);
});
}
]
};
});
在视图中,currentRow [0]被正确评估并打印出预期的内容。
但是在指令中,currentRow [0]和[1]被内插到空字符串(“”),对象time
被内插到undefined。我试图发现一个错字或其他东西我会疯了:(
我尝试了$scope.$watch
同样的结果。
答案 0 :(得分:0)
尝试使用$ parse服务从指令解析范围变量。
time = $parse(attr.currentRow)($scope)
答案 1 :(得分:0)
我的猜测是表中的<div>
是一个拼写错误,导致插值无声地失败。将其替换为<td></td>
,您就赢了:
或许您打算将div包装在表格单元格中:
<td>Stuff
<div></div>
</td>