如果观众有智能手机或PC,我需要让图像改变它的大小.这实现了我想要的,但这是一个糟糕的方法,因为加载img 4次,它是多余的:
<div class="col-md-4 text-center">
<img class="hidden-md hidden-sm hidden-xs" src="~/Content/Images/masinaC.png" width="250" height="250" />
<img class="hidden-lg hidden-sm hidden-xs" src="~/Content/Images/masinaC.png" width="200" height="200" />
<img class="hidden-lg hidden-md hidden-xs" src="~/Content/Images/masinaC.png" width="150" height="150" />
<img class="hidden-lg hidden-md hidden-sm" src="~/Content/Images/masinaC.png" width="100" height="100" />
</div>
Run Code Online (Sandbox Code Playgroud)
它一次只显示一个图像,只有大小不同.没有这个难看的标记如何实现它?可能使用CSS,我将图像大小放在HTML中只是为了简单起见.
我开始使用AngularJS,我接受了用这个编写控制器的约定,而不是使用$ scope.所以我的控制器看起来像这样:
myApp.controller("SomeController", function(){
this.myModel={id:-1, name:"empty"};
});
<div ng-controller="SomeController as ctrl">
<input type="text" ng-model="ctrl.myModel.name" />
</div>
Run Code Online (Sandbox Code Playgroud)
现在,我以这样的方式更改了控制器中的myModel对象:
this.myModel=someOtherObjectFromAForeignSource;
Run Code Online (Sandbox Code Playgroud)
...并且输入控件内的值不会改变.我读到了$ apply函数及其使用,但由于我使用"this"约定,我没有$ scope变量.
如何调用$ apply方法?
我正在使用AngularJS版本1.2.27的Kendo UI版本2014.2.716,我使用指令制作了一个网格
<div ng-controller="MyController as ctrl">
<div id="myGrid" kendo-grid k-options="{some options}"></div>
<button ng-click="ctrl.doSomething()"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
我读到如果你给网格命名(如:kendo-grid ="myGridOnScope"),你可以这样访问控制器范围中的小部件:
myModule.controller('MyController', function($scope) {
this.doSomething = function() {
console.log($scope.myGridOnScope);
}
}
Run Code Online (Sandbox Code Playgroud)
console.log应该记录一个widget对象,但在我的情况下它是未定义的.我究竟做错了什么?谢谢您的帮助