我相当新,angularjs
并且无法找到任何文档或示例.我要做的是扩展基本服务,以便我可以使用其他服务的基本服务定义的方法.例如,假设我有如下基本服务.
angular.module('myServices', []).
factory('BasicService', function($http){
var some_arg = 'abcd'
var BasicService = {
method_one: function(arg=some_arg){ /*code for method one*/},
method_two: function(arg=some_arg){ /*code for method two*/},
method_three: function(arg=some_arg){ /*code for method three*/},
});
return BasicService;
}
);
Run Code Online (Sandbox Code Playgroud)
现在我想定义一个从上面扩展的扩展服务,BasicService
以便我可以使用我的扩展服务在BasicService下定义的方法.也许是这样的:
factory('ExtendedService', function($http){
var ExtendedService = BasicService();
ExtendedService['method_four'] = function(){/* code for method four */}
return ExtendedService;
}
Run Code Online (Sandbox Code Playgroud) 我是AngularJS的新手,我在将jQuery自定义内容滚动器实现到我的应用程序时遇到了问题.
当我使用Angular更新内容时,我需要更新滚动条,为此滚动条有一个update
方法.我的问题是,我不知道在哪里调用它.内容的标记如下:
<div class="scroll-list nice-scrollbars">
<ul class="gallery clearfix">
<li class="extra-alt" ng-repeat="item in relatedItems.data">
...
</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
我试图在Angular的成功分支中调用update方法$http.post
:
$scope.relatedItems = $http.post($scope.url, {
'filterType': 'related', 'film': id
}).success(function() {
$(".nice-scrollbars").mCustomScrollbar('update');
});
Run Code Online (Sandbox Code Playgroud)
这不起作用,我认为是因为调用成功方法时,视图内容尚未更新(我可以使用alert
函数看到它,关闭对话框后出现数据)
我能够使滚动条工作的唯一方法是使用滚动条的高级属性来观察内容中的更改(这些是传递给滚动条的选项):
var scrollbarOpts = {
scrollButtons:{
enable:true
},
advanced:{
updateOnContentResize: true
//@TODO: get rid of this, correctly find where to call update method
}
}
Run Code Online (Sandbox Code Playgroud)
这是不好的做法,因为这个选项会降低整个脚本的性能. 我想知道,根据需要调用更新DOM所需的jQuery方法的正确位置在哪里,或者如何在AngularJS中正确地查看更改?
我有一个.tsx文件,我试图从material-ui导入一个RaisedButton组件,如下所示:
import * as RaisedButton from 'material-ui/lib/raised-button'
Run Code Online (Sandbox Code Playgroud)
但是,这给了我标题中描述的错误,任何想法我可能做错了什么?
我orderBy
在使用AngularJS中的过滤器时遇到了问题.这是我的设置:
<li ng-repeat="item in listItems.data | orderBy:order">
<a ng-click="getRelated(item._id)">{{ item.title }}</a>
</li>
Run Code Online (Sandbox Code Playgroud)
控制器的一部分:
$scope.order = 'year';
$scope.listItems = $http.post($scope.url, {'filterType': 'abc', 'letter': $scope.params.letter});
$scope.setOrder = function(order) {
$scope.order = order;
}
Run Code Online (Sandbox Code Playgroud)
最后我想使用"开关"来订购数据
<span class="sort--title">Sort by</span>
<a ng-class="{true:'selected', false:''}[order=='title']" href="" ng-click="setOrder('title')" class="sort--attribute">Title</a>
<a ng-class="{true:'selected', false:''}[order=='year']" href="" ng-click="setOrder('year')" class="sort--attribute">Year</a>
<a ng-class="{true:'selected', false:''}[order=='length']" href="" ng-click="setOrder('length')" class="sort--attribute">Length</a>
<a ng-class="{true:'selected', false:''}[order=='date_added']" href="" ng-click="setOrder('date_added')" class="sort--attribute">Date Added</a>
Run Code Online (Sandbox Code Playgroud)
单击按钮时,列表未重新排序.
当我手动更改初始$scope.order
值时,列表由属性排序.也ng-class
正确更新.我显然错过了一些东西!
我正在使用SonataAdminBundle
我的应用程序中管理实体.该网站的管理员可以添加视频,其中一些首先需要由他们的扬声器批准.已经有一个授权系统正在运行 - 我有一个工作代码,它将生成一个特殊链接,并通知可以批准或拒绝视频的发言人,并自动通知管理员.
我想自定义我的管理部分,因此ask for authorization
视频旁边会有一个按钮.我可以在list action(/admin/acme/videos/list
)或右边nav(/admin/acme/videos/x/edit/
)中的某个编辑操作中使用它
这样做的最佳方法是什么?文档对块自定义说的很少,但我发现这个例子可能是我正在寻找的东西,但我无法弄清楚如何使用它.
一个选项是使用preUpdate
钩子,并为编辑操作添加一个复选框,但按钮会更好.
我正在使用映射到Reservation
实体的data_class在Symfony2中呈现一个表单,并且此表单具有类的实体字段类型Service
.Reservation
和Service
班级之间的关系是多对多的.然后ServiceType
,服务具有另一个类,Service
该类从类中映射为多个
我想要做的是在预订表格中显示所有服务作为复选框,按服务类型分组.到目前为止,我可以像这样显示所有服务(代码来自ReservationType
类):
$builder->add('services','entity', array(
'class' => 'MyBundle:Service',
'multiple' => true,
'expanded' => true
));
Run Code Online (Sandbox Code Playgroud)
并以默认方式显示表单:
<form action="{{ path('reservations', {'step': 2}) }}" method="post" {{ form_enctype(form) }}>
{{ form_widget(form) }}
<input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
结果是这样的:
? servicetype1 option
? servicetype1 another option
? servicetype2 option
? servicetype2 another option
Run Code Online (Sandbox Code Playgroud)
我想要实现的是:
servicetype1:
? option
? another option
servicetype2:
? option
? another option
Run Code Online (Sandbox Code Playgroud)
我试图通过使用query_builder选项来指定服务的子集,如下所示:
$builder->add('services','entity', array(
'class' => 'MyBundle:Service', …
Run Code Online (Sandbox Code Playgroud) angularjs ×3
javascript ×3
php ×2
symfony ×2
forms ×1
jquery ×1
material-ui ×1
scrollbar ×1
sonata-admin ×1
typescript ×1