所以我有一個活的網站在這裏選項框:http://www.trock.net/#/downloads試圖自動選擇基於用戶操作系統
我所試圖做的是預選基於用戶操作系統的「選擇操作系統」選項。
apps.js位於: http://www.trock.net/js/app.js。
的下載頁面就設在這裏的原始HTML:www.trock.net/includes/downloads.html
現在,問題是,detectOS功能我似乎並沒有工作。我試圖將它附加到應用程序上的ng-init
和選擇框後的div上ng-init
,但這不起作用。如果我附上ng-click
並點擊它,它會按預期工作。
每個選項都有一個ID,這是我用來找到元素,所以我可以將「selected」設置爲true。有沒有更好的方式使用角度做到這一點?
我該如何去做這項工作,是我過早或太晚調用函數的問題?
的興趣守則apps.js:
//Auto select Operating System based on detection
$scope.detectOS = function() {
var processorArchitecture = "";
var userOS = "";
if (navigator.userAgent.indexOf("WOW64") != -1 ||
navigator.userAgent.indexOf("Win64") != -1){
processorArchitecture = "64";
} else { //Assume 32 bit
processorArchitecture = "32";
}
//Detect the OS
if (navigator.platform.indexOf("Win") != -1){
userOS = "win";
if (processorArchitecture == "64")
processorArchitecture = "32";
}
else if (navigator.platform.indexOf("Mac") != -1){
userOS = "mac";
if (processorArchitecture == "64")
processorArchitecture = "32";
}
else if (navigator.platform.indexOf("Lin") != -1){
userOS = "lin";
}
//Check for valid detection
if (userOS != "" && processorArchitecture != "") {
//Valid match found
var optionSelectionID = userOS + processorArchitecture;
//Auto detect OS
//We will find only 1 instance of said query
angular.element(document.querySelector("#win32"))[0].selected = true;
}
};
我還做了哪些實際工作,所以必須是別的東西我做的網站(也許在其他的.html頁面Ajax風格的裝載)一plunker 。
鏈接:http://plnkr.co/edit/zlmk24aVHeBNz79PjypP?p=preview