我是AngularJS的新手,就像我到目前为止看到的那样,特别是模型/视图绑定.我想利用它来构建一个简单的"添加到篮子"功能.
到目前为止这是我的控制器:
function BasketController($scope) {
$scope.products = [];
$scope.AddToBasket = function (Id, name, price, image) {
...
};
}
Run Code Online (Sandbox Code Playgroud)
这是我的HTML:
<a ng-click="AddToBasket('237', 'Laptop', '499.95', '237.png')">Add to basket</a>
Run Code Online (Sandbox Code Playgroud)
现在这可行但我非常怀疑这是在我的模型中创建新产品对象的正确方法.然而,这是我完全缺乏AngularJS体验的地方.
如果不是这样做的话,最佳做法是什么?
我想在由同一个控制器的不同实例控制的页面上显示两个元素,但是我需要注册一些独特的外部信息(一个"操纵杆"获得一个识别属性集,如"player = one"而另一个获得"玩家=两个").我不确定最好的方法是将其拉下来
这是我要完成的一个通用示例:
<!-- 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>
Run Code Online (Sandbox Code Playgroud)
我是不是该:
使用指令?
<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>
Run Code Online (Sandbox Code Playgroud)
使用$ injector?(fyi - 这可能是一个不正确的实现)
<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"});
});
Run Code Online (Sandbox Code Playgroud)
或者......不这样做?
我意识到这与另一个看似无关的堆栈帖子类似:
我有一个AngularJS应用程序,我在时间't'手动引导.在't + 1'时,我想显示一个没有附加ng-controller的HTML元素.我想动态地将ng-controller添加到此元素,以便它可以与我的javascript代码进行通信.
我怎样才能做到这一点?
PS我试图动态地将ng-controller属性添加到元素,但它不起作用.