我正在尝试将一些数据发送到指令内的函数。
在index.html页面上,我插入了如下指令:
<div safe-total safedata="safe"></div>
指令模板上的HTML如下所示:
<div class="value"><sup>$</sup>{{totalSafe(safedata)}}</div>
指令javascript如下:
secure.directive('safeTotal', function () {
return {
restrict: 'A',
replace: true,
scope: {
safedata: '='
},
templateUrl: '/Angular/SafeTotal/safeTotal.html',
link: function (scope, element, attrs) {
scope.totalSafe = function (object)
{
var test = object;
return "test";
}
}
}
});
我可以设置一个断点,var test = object
永远不会被设置。但是该函数运行并被调用。在功能中接收对象时我忽略了什么?
答案 0 :(得分:0)
您的代码看起来是正确的。
在这个plunker中,使用您的原始代码。该对象确实从safe-total ... plnkr.co/edit/Mzd5NAYFUl5yPJHuN5Nh?p=preview
<div safe-total safedata="safeisEmpty"></div> //$(nothing)
<div safe-total safedata="'safeisNotEmpty'"></div> //$safeisNotEmpty
因为我没有看到你的HTML;它可以是任何情况,1。像ng-controller的范围接管你的目录。 2.在这个时间点,var safe可以是空的,也许是在它传递给safeTotal()之前的另一个逻辑混乱的值;
检查范围的值。你可以使用batarang。 https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk?hl=en
只需观看有关如何使用它的简短视频,Batarang甚至可以使用工具指向并单击HTML元素,并在该时间点显示范围的值。
它帮助我理解不同事件中范围的价值和行为。