DurandalアプリをAurelia(最終的に)にアップデートしようとしています。今私たちの最大の関心事はコードの再利用です。我々は、ビューロジックのためにTypeScriptを書いていきますが、生のJavaScript
AMDモジュールとして働くのに多くの時間を費やした、クライアント側のメディアアクセス(webRTCのもの)がたくさんあります。AureliaでAMD/Requireモジュールを使用する
AMD ViewModelsの使用に関する質問があります。私は、新しいaureliaビューモデル内でAMDモジュールを使用することを求めています。
簡単な例として、私はmediaDeviceScanner.js
モジュールを持っている:
define(["modules/logger"], function (logger) {
'use strict';
const mediaDeviceScanner = {};
mediaDeviceScanner.scanDevices = function() {
return navigator.mediaDevices.getUserMedia({video:true}).then(function(stream) {
return stream;
}).then(function(stream) {
return navigator.mediaDevices.enumerateDevices().then(function (availableDevices) {
const mediaDevices = [];
for (let i = 0; i < availableDevices.length; ++i) {
const deviceCandidate = availableDevices[i];
if ((deviceCandidate.kind === "videoinput") && deviceCandidate.deviceId != "default" && deviceCandidate.deviceId != "communications") {
mediaDevices.push({ label: deviceCandidate.label, kind: (deviceCandidate.kind == "videoinput" ? "Camera " : "Microphone ") + (mediaDevices.length + 1), id: deviceCandidate.deviceId });
}
}
return mediaDevices;
}).catch(function (error) {
logger.log(error, logger.logLevels.warning, logger.features.webcam, logger.features.webcam);
});
})
}
return mediaDeviceScanner;
});
アウレリアののviewmodel内からmediaDeviceScanner.scanDevices
を呼び出すことに幸せなパスとは何ですか?私のデュランダルVMで
が、私はこれは持っている:
define(["amd/mediaDevices/mediaDeviceScanner"],function(mediaDeviceScanner){
mediaDeviceScanner.scanDevices().then(function(devices){alert('woot')});
});
私は「再利用費」の種類のゲージを取得したいのですが、私は「フレームワークシフト」のコストを評価する前に存在します。
Btw。 Durandalから来る場合は、KOバインディングをサポートし、元のテンプレートを大幅に変更することなく、https://github.com/code-chris/aurelia-knockoutを参照してください – zewa666