Tôi muốn hiển thị hai yếu tố trên một trang điều khiển bởi trường hợp khác nhau của bộ điều khiển cùng, nhưng tôi cần phải đăng ký một số thông tin bên ngoài mà sẽ là duy nhất (một "phím điều khiển" nhận được một bộ thuộc tính nhận dạng, như "người chơi = một" trong khi người kia nhận được "người chơi = hai"). Tôi không chắc cách nào tốt nhất để rút nó ra chính xácAngularJS tái sử dụng bộ điều khiển tương tự trên một trang, với cấu hình khác nhau
Đây là một ví dụ chung những gì tôi đang cố gắng hoàn thành:
<!-- These need to have different configurations -->
<div ng-include src="'joystick/joy.tpl.html'"
ng-controller="JoystickCtrl">...</div>
<div ng-include src="'joystick/joy.tpl.html'"
ng-controller="JoystickCtrl">...</div>
Tôi có nên:
Sử dụng chỉ thị?
<div ng-include src="'joystick/joy.tpl.html'"
ng-controller="JoystickCtrl" player="one">...</div>
<div ng-include src="'joystick/joy.tpl.html'"
ng-controller="JoystickCtrl" player="two">...</div>
Sử dụng $ injector? (FYI - điều này có thể là một thực hiện không chính xác)
<div ng-controller="DualJoyCtrl">
<div ng-include src="'joystick/joy.tpl.html'"
ng-controller="joyOne" player="one">...</div>
<div ng-include src="'joystick/joy.tpl.html'"
ng-controller="joyTwo" player="two">...</div>
</div>
-----
.controller('DualJoyCtrl', function ($injector, JoystickCtrl, $scope, $rootScope) {
$scope.joyOne = $injector.instantiate(JoystickCtrl, {$scope: $rootScope.$new(), player:"one"});
$scope.joyTwo = $injector.instantiate(JoystickCtrl, {$scope: $rootScope.$new(), player:"two"});
});
Hoặc ... không làm được điều này?
Tôi nhận ra điều này cũng tương tự như nhau, dường như ngăn xếp không phân thắng bại bài:
hoặc tạo chỉ thị chính nó – Kosmetika
hoàn hảo, nhờ @package – methai
Tôi muốn thêm rằng phạm vi $.thuộc tính trình phát KHÔNG có sẵn ngay lập tức cho bộ điều khiển, nhưng nó có sẵn trong mẫu. Nếu bạn '' 'console.log ($ scope.player)' '' từ bên trong bộ điều khiển, bạn sẽ nhận được không xác định trừ khi nó khoảng 50ms hoặc sau đó sau khi khởi tạo bộ điều khiển. – methai