In Angular, it’s very easy for a directive to call into a controller. Working in the other direction – that is, calling a directive function from the controller – is not quite as intuitive. In this blog post, I’ll show you an easy way for your controllers to call functions defined in your directives.
First, calling a controller function from a directive is straightforward. You simply define a “callback” function in the controller and pass it to the directive (using the ‘&’ symbol in the isolated scope definition). It’s then trivial for the directive to invoke the function, which calls into the controller. To put things in .NET terms, this is akin to a user control (the directive) raising an event, which the user control’s host (the controller) can handle.
For example, you may want your directive to call your controller when the…
I dislike visual clutter. Most people do. Perhaps they can’t articulate it. I know most of our clients say things like, “It looks too crowded,” if presented with something that strikes them that way. They don’t use the words “visual clutter” as we would in design parlance.
However, that idea of clutter-reduction has recently over-reached its bounds in the oft-cited and overused mantra of “flat design.” I’m all for simplifying, but there are some designers who take it too far, slashing and ripping out things that they claim help to simplify the UI to its bare essentials, but they’re only thinking one-dimensionally, pun intended.
When you’re a hands-on CEO, you want to get involved in every aspect of your company. Now, as UX Design becomes a differentiating factor for product and company visibility, CEOs are paying more attention to design, but some, like Yahoo!’s Marissa Mayer, are ham-handing it.
Print style sheets, should in theory, be simple. You strip out the complicated junk from your page, and format it a little better for a piece of paper. Right? Wrong. Print style sheets are a pain in the butt. They’re hard to debug, finicky depending on the browser, and downright annoying to get perfect.
A lot of confusion surrounds the concept of block and inline elements, and its not unusual for this confusion to persist indefinitely. I’m hopefully going to clarify this tiny but influential difference for everyone in just a few images and with one CSS property.
The first image is a screen capture of the HTML and CSS I’ve used. Note how everything is behaving according to it’s default properties. The headers create line breaks, the anchor tag doesn’t.
Creating successful user experiences is an art. A lot of art involves taking advantage of the way that the brain processes information. The most successful designs (user experiences or otherwise) are those that give off feeling of “how else would you do it?”. The design simply seems to make sense. Designing an interface is a more complex process than simply creating links and putting arrows on a page. To compare this process to that of another in art in terms of complexity- let’s have a look at foreshortening. Foreshortening in art is a good illustration of how difficult it is, because it illustrates that something that seems so obvious once it’s done well. It harnesses the power of the brain to fill in the things it’s expecting, even if they aren’t there.
Brief (but required) history lesson:
Back when IE had 90% or so of the market share, browsers were essentially an enigma. It was hard to know exactly how things worked. Now that open source browsers have a significant part of the market share and there is competition between them in terms of functionality, how the browser works is coming into the light.
There are a lot of rules that front end engineers follow and consider standard, but a lot of F2E’s don’t know why we do some things. It’s crucial that you be able to justify to your clients or your boss why you take the time to follow best practices, and to make decisions based on all of the facts.
The language of the modern web is HTML5. It’s a great thing. You probably don’t understand why yet, but you will.
Our most basic page:
That’s really boring, you might say. Well yes, it is. If you opened it in a browser it would be a blank page. But it is important because before we get into actually having stuff on our page, we should probably figure out what is going on here.
We’ve saved the file as a .html file. You can do this from any editor, including Notepad, TextEdit or Word (i do not recommend using word under any circumstances). All you have to do is write .html after your file name. This tells the browser, “hey! this ones for us! let’s render it” and starts the whole process of displaying your web page.
The following CSS should be applicable to HTML/JS apps, you may need to make changes to make it work properly if you’re not using a page control based navigation system. This “table” is not really a table, but a bunch of dynamically generated data under a static header. The images below are the basic way I want it to look. Below that is the CSS I used to make it work, along with notes for why I did things the way I did.