0
在下面的代码中,当我单击span
时,新的movesNumber
值在视图上更新,但当从方法newMove()
被调用时gameCtrl
作用域中的movesNumber
的值将递增,但在视图中不会更新。从指令调用控制器的方法时,AngularJS:绑定不起作用
我想有一些具体的绑定,当一个控制器的范围从指令调用,但我不知道如何。
这里是我的HTML:
<section ng-controller="gameCtrl" ng-show="gameIsVisible">
<span ng-click="newMove()">{{ movesNumber }}/{{ maxRightMovesNumber }}</span>
<block ng-repeat="block in game[selectedChapter].levels[selectedLevel].blocks"></block>
</section>
这里是我的控制器:
app.controller(
'gameCtrl',
[
'$scope', '$rootScope', '$document', 'localStorage',
function ($scope, $rootScope, $document, localStorage)
{
$scope.newMove = function()
{
$scope.movesNumber ++;
};
}
]
);
这里是我的指令:
app.directive(
'block',
[
"$rootScope", "$document",
function($rootScope, $document)
{
function link(scope, element, attributes)
{
if(scope.block.isDroppable)
{
$document.on('blockDropped', checkDroppedElement);
}
function checkDroppedElement(event)
{
scope.$parent.newMove();
}
}
return {
restrict: 'E',
template: '{{ block.value }}',
link: link
};
}
]
);
你不需要做$父,因为它们共享相同的范围 – Bazinga
@JsIsAwesome没有,有也ngRepeat。 – dfsq
那又如何?我不明白 – Bazinga