[英]How to pass value to directive isolated scope using Angular.js
我需要使用Angular.js將值從數組傳遞到指令范圍。 我的代碼如下所示。
的test.html:
<html><head>
<!--music_append_class-->
<script src="js/angular.min.js"></script>
<script src="test.js"></script>
</head>
<body ng-app="formComponents">
<form-input label="Name" form-id="nameInput">
<input type="text" name="ind" id="ind" ng-model="index">
<button type="button" id="btn" ng-click="playAudio(index);">Play</button>
</form-input>
</body>
</html>
test.js:
var app=angular.module('formComponents', [])
app.directive('formInput', function($document) {
var audio = $document[0].createElement('audio');
var trackList=[{'track':'audio_file.mp3'},
{'track':'audio_file1.mp3'},
{'track':'audio_file2.mp3'},
{'track':'audio_file3.mp3'}];
return {
restrict: 'E',
scope: { src: '='},
}
})
數組中有mp3列表,我的要求是用戶僅在文本字段中輸入索引值,然后單擊“播放”按鈕。 該索引值將與該mp3數組列表匹配,並且將播放該特定曲目。 我需要使用指令。
您必須創建一個html屬性才能將數組傳遞到指令中,這是一個示例:
外形input.directive.js:
app.directive('formInput', function() {
return {
restrict: 'E',
scope: {
mp3Track: '='
},
controller: formInputCtrl,
transclude: true,
templateUrl: './form-input.html'
};
});
formInputCtrl.$inject = ['$scope'];
function formInputCtrl($scope) {
$scope.playAudio(index) = playAudio;
function playAudio(index) {
var track = $scope.mp3Track[index];
// DO OTHER STUFF WITH THE TRACK
}
}
外形input.html:
<div class="audio-input" ng-transclude>
// input and button will be inserted here by angularjs
</div>
index.html的:
<form-input label="Name" form-id="nameInput" mp3-track="mp3Array">
<input type="text" name="ind" id="ind" ng-model="index">
<button type="button" id="btn" ng-click="playAudio(index);">Play</button>
</form-input>
mp3Array是一個數組,其中mp3曲目在html頁面訪問的控制器中定義。
這是angularjs指令文檔,您可以找到隔離范圍使用的另一個示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.