我想在視頻結束後顯示div。視頻結束後會顯示警報,但div仍不可見。我在做什麼錯誤。 感謝您提前給予幫助。角度ng顯示不能從控制器工作
@section scripts
{
<script type="text/javascript" src="~/App/Controllers/TestController.js"></script>
}
<div ng-controller="TestController as ctrl" class="md-content" ng-cloak>
<h1>Test</h1>
<video id="myVideo" controls autoplay>
<source src="~/Videos/Test1.mp4">
</video>
<div id="test" ng-show="ui.showTest">
<h1>Test</h1>
Added this as a test to see if your controller is linked to the view
<p>{{ui.shouldSeeThis}}</p>
</div>
</div>
這是控制器
angular.module('MyApp', ['ngMaterial', 'ngMessages'])
.controller('TestController', function ($scope, $http, $filter, $mdDialog) {
var vid;
function initializePlayer() {
vid = document.getElementById("myVideo");
vid.addEventListener('ended', videoFinish, false);
}
window.onload = initializePlayer;
$scope.ui = {
showTest: false,
//I've added this to see if your controller is linked to the view
shouldSeeThis: "Hello World"
};
function videoFinish() {
$scope.ui.showTest = true;
alert("VideoFinish");
}
});
沒有足夠的信息在這裏肯定知道是什麼問題,但你*可能是「總是在角度綁定中使用點」規則的受害者。你已經在'ng-show'中綁定了一個原語,並且由於原型繼承,這個原語很容易被無法訪問。你應該總是綁定對象屬性,而不是基元。請參閱http://stackoverflow.com/questions/14049480/what-are-the-nuances-of-scope-prototypal-prototypical-inheritance-in-angularjs – Claies
您應該提供完整的代碼。 – Karim
你確實檢查了視頻後showTest的價值。 $ scope不是唯一的...您可以在另一個$ scope中遇到問題,因爲您可以編寫{{showTest}}或安裝一個extencion如何使用ng-inspector。一個簡單的解決方法是使用一個對象 – Pablote